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
  • 相关阅读:
    PHP7函数大全(4553个函数)
    Mysql 查看连接数,状态 最大并发数
    linux安装git
    PHP new StdClass() 创建空对象
    PHP 如何向关联数组指定的 Key 之前插入元素
    php 常用 小知识点
    PHP激活用户注册验证邮箱
    php rsa 加密、解密、签名、验签
    PHP支付接口RSA验证
    [2018-12-07]用ABP入门DDD
  • 原文地址:https://www.cnblogs.com/pecool/p/7966155.html
Copyright © 2011-2022 走看看