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
  • 相关阅读:
    160-三个用户同时登录,是怎么实现多线程的?
    159-如何解决缓存穿透?
    158-为什么会引发缓存穿透?
    存储emoji表情,修改字符集为utf8mb4
    java相差小时数
    pom.xml解释
    前端 跨域
    java 获取的是本地的IP地址
    是否超时
    发送验证码
  • 原文地址:https://www.cnblogs.com/pecool/p/7966155.html
Copyright © 2011-2022 走看看