多态指的就是同一个对象的不同状态,如果儿子 继承 父亲 那么我们可以用父亲 对象名=new 儿子()
多态只有在有方法重写的时候才有作用,因为父亲 对象名=new 儿子()与父亲 对象名=new 父亲()的区别只在于该儿子重写了父亲的方法会覆盖掉父亲的方法
而在其他情况下则按父亲对象去处理,如下:
假设 父亲 对象名=new 儿子() 左边是父亲,右边是儿子
多态中的成员访问特点A:成员变量
编译看左边,运行看左边
B:构造方法
子类的构造都会默认访问父类构造
C:成员方法
编译看左边,运行看右边
D:静态方法
编译看左边,运行看左边
代码演示:
class Fu{
int num=20;
public Fu(){
System.out.println("Fu的构造方法");
}
public void show(){
System.out.println("Fu的成员方法");
}
public static void show1(){
System.out.println("Fu的静态方法");
}
}
class Zi extends Fu{
int num=10;
public Zi(){
System.out.println("Zi的构造方法");
}
public void show(){
System.out.println("Zi的成员方法");
}
public static void show1(){
System.out.println("Zi的静态方法");
}
}
public class duotai {
public static void main(String[] args) {
Fu f=new Zi();
System.out.println(f.num);
f.show();
f.show1();
}
}
结果:
Fu的构造方法
Zi的构造方法
20
Zi的成员方法
Fu的静态方法