使用PHP中的覆盖override重写

含义:

一个子类继承了父类的特征信息(私有的继承不了),但又自己来重新定义父类继承给自己的特征信息,这种现象就称为“覆盖”(重写)——override。

先考察一个下级使用上级类显示信息而不“完全”的例子:

于是,我们在子类中,“亲自”来定义一个显示信息的方法,该方法跟父类的方法同名:

(同名的目的可以认为“做同样的事情”):

该代码明显有2行是跟父类的同名方法所做的事情是一样的,则改进如下:

重写的基本要求:

访问控制权限:下级类重写上级类的同名属性或方法时,所使用的访问控制修饰符“不能更狭小”,即:

上级是public,下级只能是public

上级是protected,下级只能是protected和public

上级是private,下级:此时覆盖不了,

方法覆盖的时候,下级方法的参数要求跟上级方法的参数“一致”:

特例:构造方法也可以重写,但此时不要求参数一致。

私有属性和私有方法的重写问题:私有属性和方法都不能覆盖,但其实子类可以定义跟父类私有的同名属性或方法。只是当作一个自身的新的属性或方法来看待而已




转载请注明:http://www.aierlanlan.com/cyrz/2788.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了