多态的优点
-
消除类型之间的耦合关系
-
可替换性
-
可扩充性
-
接口性
-
灵活性
-
简化性
多态存在的三个必要条件
- 继承
- 重写
- 父类引用指向子类对象
例如:
Parent p = new Child();
多态中的成员访问特点
成员变量
编译看左边,运行看左边。
构造方法
创建子类对象的时候,访问父类的构造方法,对父类的数据进行初始化。
成员方法
编译看左边,运行看右边。
由于成员方法存在方法重写,所以它运行看右边。
静态方法
编译看左边,运行看左边。
(静态和类相关,算不上重写,所以,访问还是左边的)
多态的弊端
不能使用子类的特有功能
class Animal {
public void eat(){
System.out.println("吃饭");
}
}
class Dog extends Animal {
public void eat() {
System.out.println("狗吃肉");
}
public void lookDoor