extends、implement是多态的前提
多态
父类引用指向子类
父类名称 对象名=new 子类名称();
接口引用指向实现类
接口名称 对象名=new 实现类名称();
右边new谁调用谁
多态中成员变量的访问特点
1、直接通过对象名进行访问,等号左边是谁,优先调用谁,没有向上找
public class Fu {
int num=20;
}
public class Zi extends Fu{
int num=10;
}
public class Demo01Multi {
public static void main(String[] args) {
Fu mul=new Zi();
System.out.println(mul.num);//访问变量看左边,调用父类
}
}
结果
2、间接通过成员方法
(1)若没重写,方法属于谁优先用谁,没有向上找
(2)如果子类重写了,优先用子类(因为子类更具体)
成员方法的访问规则
成员方法:编译看左边,运行看右边
方法new谁运行谁,没有向上找
成员变量:编译看左边,运行也看左边
多态的好处:无论右边new时换哪个子类对象,左边都不变
网友评论