继承
父类:公共的属性和方法
子类:特有的属性和方法
重写 override:
1、继承
2、子类拥有和父类的一样的方法
方法名相同
参数列表相同
返回值类型可以缩小
访问控制权限可以方法
可声明的异常。。
重载:overload
1个类中,方法名相同,参数列表不同
与返回值类型,访问控制权限无关
为什么用重写?
子类不满足父类提供的实现
实现多态
父类并不要求子类必须要重写
abstract 抽象的
修饰的方法,这个方法就叫抽象方法
没有方法体
无法描述方法体,就可以用abstract修饰
强制要求所有子类都要重写,否则子类就是抽象的,交由子类的子类继续重写
抽象方法必须位于抽象类中
修饰类,这个类就叫抽象类
没有实例对象,不能实例化
如果一个类没有实例对象,不允许实例化,就可以定义成抽象的。
可以有构造方法吗?可以,有必要有,可以给子类共有的属性初始化
抽象类中必须要有抽象方法吗?不一定,可以有0-多个抽象方法
抽象类中可以有普通的方法吗?可以
不可以修饰属性
final 最终
修饰变量,变量的值不能被修改--常量
初始化:1、定义时2、所有的构造方法里
通常和static结合,定义静态常量
修饰方法,方法不能被重写
abstract 和 final 不能同时修饰方法
修饰类,类不能被继承
abstract 和final不能同时修饰类
向上转型
里氏替换原则:所有要求父类对象出现的地方,子类对象都可以替换它
父类类型 引用=new 子类类型(); -----自动类型转换
好处:
面向父类编程,方便扩展
更好的利用多态
缺点:
用不了子类特有的方法
向下转型
子类类型 引用=(子类类型)父类类型对象;--强制类型转换
有可能引发ClassCastException
所以向下转型之前需要先进行类型判断,通过instanceOf来实现
A instanceof B 判断a对象是否是B类型的实例 如果a是B类型/B类型的子类对象,都会返回true
多态
多种形态
生活中的例子:
人--演员 ---- cut -----停止表演
理发师----- cut------剪发
打印机 打印
黑白打印机 ---- 黑白打印
彩色打印机 ---- 彩色打印
同一种类型的对象(同一种父类引用),执行相同的方法,结果不同。
实现:
1、继承
2、子类重写父类的方法
3、向上转型
父类类型 引用=new 子类类型();
执行过程中,引用对象会根据具体的子类类型来决定执行哪个方法
多态在编程中会有以下形式:
1、父类类型做形参
模拟员工回家
Employee goHome(交通工具)
骑车
坐地铁
坐公交
2、父类类型做属性
3、父类类型做返回值
多态中的成员
方法:
普通方法:父类类型 引用=new 子类类型();
静态方法:不会覆盖
属性:
不会被覆盖的
多态:
狭义:继承-重写-向上转型----动态的多态
广义:通过重载来实现----静态的多态
注:主页更多学习资料。
详细解决方案
继承、重写、重载、 abstract 抽象、 final、向上(向下)转型、多态
热度:110 发布时间:2023-11-23 00:02:22.0
相关解决方案
- java面试例题惑 之变量初始顺序,变量覆盖,字符串池,final,finally区别
- java 无构造 final 类,该怎么处理
- public final static day解决方案
- static final int i;若不赋值就失误,求内存解释
- 请教下public abstract class SqlHelper抽象类下,为什么能写public static int ExecuteNonQuery()方
- 必须声明主体,因为它未标记为 abstract 或 extern解决办法
- 必须声明主体,因为它未标记为 abstract、extern 或 partial解决方法
- |M| public abstract class mycn 里面的abstract是什么意思,什么时候要用到这个,该如何解决
- jobss-as-7.1.1.Final 启动有关问题
- why inner class can access only final variable
- final 和static final的区别是什么?
- CheckBoxListener is not abstract......什么意思
- [求助]final MyTable(类名) this$0;是什么意思?
- 为什么 方法中的内部类 不能访问 方法中非 final 修饰的变量
- abstract class代表什么,有什么作用
- 遇到The serializable class xxx does not declare a static final serialV ...
- 鬼老又给偶出了一个 Final Project, 紧急求助大家
- 高效率 Java Web 开发框架 JessMA v3.2.3 Final 发布
- 一个种不能被继承;也不可以外界创建对象==》final+构造方法私有(原创)
- 运用node.js建博客(六) - 添加代码高亮的支持 (Final)
- 施用Eclipse 开发 Richfaces3.3.3 Final+jsf2.0 的基本配置
- 大家好,哪位高手能帮小弟我看看这个错:The type AppRoleDaoImpl must implement the inherited abstract meth
- private static final long serialVersionUID = 1L;该如何处理
- private static final long serialVersionUID = 1L;解决方案
- 怎么解决 Cannot inherit from final class
- interface 可以被 private、protected、 static、 final 润色吗
- 代码加密解密报错误,Given final block not properly padded
- S2SH框架DAO继承HibernateDaoSupport出现Cannot override the final method from Hibernate解决方案
- Cannot refer to a non-final variable result inside an inner class
- abstract interface和interface的区别?该如何处理