多态
多态的前提
- 类的继承
- 接口的实现
多态的表现形式
父类的引用指向子类的对象
多态的使用
- 方法的使用
编译看父类,运行看子类 - 成员变量的使用
编译,运行看父类
转型
基本数据类型:向上自动类型提升,向下强制类型转换
引用数据类型:向上转型(自动),向下转型(强制)
小范围类型:----子类
大范围类型----父类
当需要调用子类的独有的功能,则需要向下转型
instanceof 类型
为了避免向下转型转型错误,出现类型转换异常的问题,就用到 instanceof类型
判断前面的引用是否为后面类型的对象或子类的对象
如果是,返回true,如果不是,返回false
接口
interface的定义是特殊的抽象类.
静态的公共的常量+公共的抽象的方法
常量:public static final 默认修饰符,可以选择性的省略
功能:public abstract 默认修饰符,可以选择性的省略
类的继承,和接口的实现:
1.抽象方法都必须被重写
2.使用接口中的内容:
具体的实现类:重写接口中的所有抽象方法,按需新增.
抽象的实现类:按需重写抽象方法,按需新增
3.继承,一个类只能继承一个类,接口可以多实现,实现了接口,就拥有了接口中定义的功能
4.一个类及继承父类又实现接口,先继承后实现
5.避免实现的多个接口中定义了相同的功能
6.接口可以多继承其他接口,不能是实现接口的(实现:对抽象方法方法体的实现)
7.接口不能实例化
接口的优点
避免单继承的局限性 (推荐使用接口)
提高代码的复用性
解耦:高内聚低耦合
定义规范