多态
静态多态
在编译期,就确定调用哪个对象的哪个方法
- 体现一:方法的重载;
- 体现二;单独使用的重写;
动态多态
在编译期不清楚,在运行期根据具体情况确定哪个方法
- 动态绑定
- 重写
转型
基本数据类型
- 自动转换
- 强制转换
引用数据类型
条件:必须有继承关系
- 向上转型(绝对成功,没有风险)
- 当父类的引用指向子类的对象,该引用只能看见来至父类的属性行为,看不到子类特有的行为属性;
- 当父类的引用指向子类的对象时,该引用调用被子类重写的方法时,得到子类重写后的效果
- 向下转型(强制转型,不一定成功,有风险)
- 只有在本类的引用指向本类的对象是才会成功
动态绑定
- 父类的引用指向子类对象,同事调用父类被重写的方法
instanceof
用instanceof规避强转的风险
抽象
表明该类具有这个方法,当不知道如何去实现;
- 关键字:abstract
- 有抽象方法的类必须是抽象类;
- 抽象类不一定有抽象方法;但失去了设计的意义;
- 抽象类不能产生对象;
- 抽象类的用途是专门用来产生子类;
- 当子类继承抽象类是,必须重写所有的抽象方法;除非该子类是抽象类;
- 抽象类有构造方法,虽然自己不能产生对象;但子类可以产生对象
- 抽象类不影响动态绑定;
- 抽象类的引用可以指向子类,强迫子类必须重写要调用的抽象方法;·