多态
(1)同一个对象,在不同时刻表现出来的不同状态。
举例:水(水,冰,水蒸气)
猫(猫,动物)
(2)前提:
A:有继承或者实现关系。
B:有方法的重写。
C:有父类(接口)的引用指向子类对象。
(3)多态中的成员使用特点:
A:成员变量
编译看左边,运行看左边。
B:成员方法
编译看左边,运行看右边。
class Fu {
int num=4;
void show() {
System.out.println("showFu");
}
}
class Zi extends Fu {
int num=5;
void show() {
System.out.println("showZi");
}
}
class T {
public static void main(String[] args) {
Fu f=new Zi();
System.out.println(f.num);
f.show();
}
(4)多态中的转型:
A:向上转型
把子类对象赋值给父类(接口)的引用
B:向下转型
把父类(接口)的引用强制转换成子类对象
(5)多态的好处及弊端:
A:好处
提高了程序可维护下和可扩展性。
开闭原则:对扩展开放,对修改关闭。
B:弊端
不能使用子类特有内容。
要想使用,要么向下转型,要么重新创建子类对象。
(6)多态的三种形式:
A:具体的类多态
B:抽象类多态
C:接口多态
|
|