谈谈我对多态的理解?
Posted more harder, the more fortunat
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谈谈我对多态的理解?相关的知识,希望对你有一定的参考价值。
举例:
父类:Person{}
子类:Child extends Person{}
父类的引用指向子类的对象:Person p = new Child();
理解:在编译期认为p是父类的对象,在运行期认为p是子类的对象
////////////////////子类执行方法的情况:
1.子类重写了父类方法,当使用p去调用此方法会执行子类的方法
这样理解:父类是(国家) 子类是(地方),国家颁布了一些惠民政策(方法),地方要实施惠民政策(方法),于是派了一个钦差(p)去地方监督执行,政策肯定要根据当地情况去执行(这就是为什么会执行子类的方法);
2.子类中没有重写父类某方法,当使用p去调用该某方法的时候,执行的是父类的方法
3.子类想用p执行自己的特有的方法是不可以的
这样理解:是不行的,因为有国家政策的限制
////////////////////对Person p = new Child();会触发哪些方法的理解
1.子类继承父类,对父类构造方法的要求
1.1 父类中有无参构造,子类可以直接继承
1.2 父类中只有有参构造,子类不可能有无参构造,子类必须在其有参构造中使用super(args)调用父类有参构造
2.在运行期间,会先走父类的有参或无参构造,其次是子类的无参或有参构造
以上是关于谈谈我对多态的理解?的主要内容,如果未能解决你的问题,请参考以下文章