谈谈我对多态的理解?

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.在运行期间,会先走父类的有参或无参构造,其次是子类的无参或有参构造

    

         

 

以上是关于谈谈我对多态的理解?的主要内容,如果未能解决你的问题,请参考以下文章

谈谈对java 多态的理解

谈谈多态

谈谈我对Spring IOC的理解

谈谈我对SOFA模块化的理解

谈谈我对 Kotlin 中协程的理解

谈谈我对AJAX的理解