多态存在的三个必要条件
- 有继承关系
- 有方法重写
- 父类引用指向子类对象
class Father {
int num = 10;
public Father() {
super();
}
public void work() {
System.out.println("father earning maney.");
}
}
class Son extends Father {
int num = 20;
public Son() {
super();
}
public void work() {
System.out.println("son study.");
}
}
public class Demo1_Polymophysm {
public static void main(String[] args) {
Father f = new Son();
System.out.println(f.num); // 10
f.work(); // son study.
}
}
输出结果:
10
son study.
成员变量
- 编译看左边(父类),运行看左边(子类)
成员方法
- 编译看左边(父类),运行看右边(子类) // 动态绑定
静态方法
- 编译看左边(父类),运行看左边(子类)