zoukankan      html  css  js  c++  java
  • 我对多态的理解

    举例:

    父类:Person{}  

    子类:Child extends Person{}

    父类的引用指向子类的对象:Person p = new Child();

    理解:在编译期认为p是父类的对象,在运行期认为p是子类的对象,即对非静态属性和行为编译看左边,运行看右边

    执行子类方法的情况:

      1.子类重写了父类方法,当使用p去调用此方法会执行子类的方法

        类比理解:父类是(国家),子类是(地方)。国家颁布政策(方法),地方要实施政策(方法),于是派了一个钦差(p)去地方监督执行,政策肯定要根据当地情况去执行;

      2.子类中没有重写父类某方法,当使用p去调用该某方法的时候,执行的是父类的方法(类比理解:地方没有自己的政策,则使用国家统一政策)

      3.子类想用p执行自己的特有的方法,可以向下转型:Child child = (Child) p;

    对Person p = new Child();会触发哪些方法的理解

      1.子类继承父类,对父类构造方法的要求

         重点:子类的有参和无参构造中隐式的添加了父类的无参构造

      2.在运行期间,默认情况下会先走父类的无参构造,其次是子类的无参构造

        

             

    Best Regards
  • 相关阅读:
    GCC 里面的一些命令
    Servlet中的GET和POST之间的区别
    短暂的计算机职业生涯
    如何写详细设计文档
    exe4j打包jar文件成exe .
    android反编译问题
    OnScrollListener拖住主线程
    涵盖Android所有知识点的小实例
    屏蔽log
    sdk调低版本时,clean后失去R文件
  • 原文地址:https://www.cnblogs.com/pecool/p/7966155.html
Copyright © 2011-2022 走看看