多态的详解
程序员文章站
2022-03-15 19:32:49
...
多态的特点
生活中的多态:
- cut
- 理发师: 理发
- 医生: 动手术
- 导演: 暂停
多态的必要条件:
- 1.必须存在继承关系
- 2.必须存在方法重写
- 3.父类引用指向子类对象
- 多态的概述:
- 生活上: 同一个动作在不同的环境下体现出来的不同的结果
- 代码中: 父类引用指向子类对象
多态访问成员的特点
-
成员变量: 编译时期看左边类型,运行时期看左边类型
- 成员方法: 编译时期看左边类型,运行时期看右边类型
- 构造方法: 帮助子类初始化父类继承过来的成员
-
静态方法: 编译时期看左边类型,运行时期看左边类型,说明static不能重写方法
举例如下:
public class PolymorphismDemo02 {
public static void main(String[] args) {
Zi zi = new Zi();
System.out.println(zi.num); // 30
Fu fu = new Zi();
System.out.println(fu.num); // 20 ------------------------第一条
fu.method(); // Zi.method()----------------------------------第二条
fu.staticMethod();//-------------------------------------------第四条
}
}
class Fu {
int num = 20;
public void method() {
System.out.println("Fu.method()");
}
public static void staticMethod() {
System.out.println("Fu.staticMethod()");
}
}
class Zi extends Fu {
int num = 30;
@Override
public void method() {
System.out.println("Zi.method()");
}
public static void staticMethod() {
System.out.println("Zi.staticMethod()");
}
}
上一篇: Python LeNet网络详解及pytorch实现
下一篇: cleanCode(5)