通过多态来访问类的成员:
访问成员变量
编译时期观察左边类型,运行时期也观察左边类型
class Son extends Father{
int num=100;
@Override
public void show(){
System.out.println("子类"+num);
}
}
class Father {
int num =200;
public void show(){
System.out.println("父类"+num);
}
}
//访问成员变量,编译和运行时期都是看左边
Father fa=new Son();
System.out.println(fa.num);//父类200
访问成员方法:
编译时期看左边,运行时期看右边
//访问成员方法
fa.show();//子类200
访问构造方法:
先访问父类的构造方法,再访问子类构造方法
class Son extends Father{
int num=100;
public Son() {
System.out.println("我是子类无参构造");
}
}
class Father {
int num =200;
public Father() {
System.out.println("我是父类无参构造");
}
}
//访问构造方法
Father fa2=new Son();
//打印结果
//我是父类无参构造
// 我是子类无参构造
访问静态方法:
编译和运行时期都看左边
注意:私有方法,静态方法,final方法不能够被继承,所以不能够使用多态去访问