多态的前提:
1.要有继承关系;
2.要有方法重写;
3.要有父类引用指向子类对象;
绘图描述:
如果编译时 父类中没有print方法,编译器将立马报错;运行时看子类,如子类无print方法--编译器不会报错,并且调用父类print方法。
父类引用指向子类对象时,成员变量:
class father{
int num=10;
public void print(){
System.out.println("father类");
}
public static void method(){
System.out.println("father static method");
}
}
class son extends father{
int num=20;
public void print(){ //方法重写
System.out.println("son 类");
}
public static void method(){
System.out.println("son static method");
}
}
class demo5 {
public static void main(String[] args) {
father f=new son();
f.print();//输出son类 ,动态绑定;
f.method();//相当于 father.methed() 静态绑定;
System.out.println(f.num);
}
}