多态:一种事物的多种形态|多种表现形式
-
多态的前提:
-
类的继承
-
接口的实现
-
多态的体现|表现形式:
-
父类的引用指向子类对象
-
多态的使用:
-
父类的引用在调用方法,调用子类中重写的方法
-
注意:父类引用对子类新增功能不可见
-
如果子类中没有重写方法,多态没有意义
-
多态使用成员:
-
成员变量:
-
编译 运行看父类|左边|类型
-
成员方法:
-
编译看父类,运行看子类
-
编译看类型,运行找对象
-
编译看左边,运行看右边
接口: interface定义 -
特殊的抽象类
-
能用接口就是用接口
-
在1.7及之前:
-
静态的公共的常量+公共的抽象的方法
-
属性:
public static final默认修饰符,可以选择性的省略 -
功能:
public abstract 默认修饰符,可以选择性的省略
jdk1.8及之后版本: -
1.静态方法:接口名字. 使用
-
2.默认方法:实现类的对象使用
注意: -
1.类的继承,接口需要实现
-
2.抽象方法必须被重写
-
3.使用接口中的内容:接口需要实现implements,类要使用extends继承
-
具体的实现类: 重写接口中的所有抽象方法+按需新增
-
抽象的实现类: 按需重写抽象方法+按需新增
-
4.单继承,一个类只能继承一个类,接口可以多实现,实现了接口,就拥有了接口中定义的功能
-
5.一个类及继承父类又实现接口,先继承后实现
-
6.避免实现的多个接口中定义了相同的功能
-
7.接口可以多继承其他接口,不能是实现接口的(实现:对抽象方法方法体的实现)
-
8.接口不能实例化
接口的优点:
- 避免单继承的局限性 (推荐使用接口)
- 提高代码的复用性
- 解耦:高内聚低耦合
- 定义规范
- 根据不同的需求:定义类,抽象类,接口,推荐使用接口