zoukankan      html  css  js  c++  java
  • PHP重写

    重写override

    重写又叫覆盖,就是将从父类继承下来的属性或方法重新“定义”——就是从新写。

    但注意:子类覆盖父类的方法,虽然可以去调用父类的同名方法去完成一定的工作,但不是必须的。也有可能父类的该方法所执行的结果并不适合子类,此时子类就去完全自己写了。

    重写的基本要求:

    访问控制权限

    下级的访问控制权限应该不低于上级的访问控制权限:

    上级:public  下级:只能public

    上级:protected  下级: protected, public

    上级:private   下级:private  protected  public——实际此情况无意义。

    私有的不能覆盖,而是完全当作自己全新的。

    方法的参数形式

    应该跟父类的一致。

    正确的做法:

    更多参数也不对:

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

    构造方法的重写问题:构造方法不但可以像其他普通方法一样重写,而且,比普通方法更宽松:重写的时候参数可以不一致。

    最终类final class

    通常,一个类,没有特别声明的话,则“别人”就可以随意拿过来使用并对之进行“扩展”——继承。

    但是:

    如果某个类不希望对其进行扩展,则可以将其声明为“最终类”。

    形式:

    final  class  类名{ 。。。。类定义。。。。}

    最终方法final method

    通常,一个方法,如果没有特别声明,则下级类就可以对其进行“覆盖”(重写)。

    但是:

    如果某个方法不希望被下级类覆盖,就可以对其生命为“最终方法”。

    形式:

    final  function  方法名(){。。。。方法定义。。。。}

  • 相关阅读:
    ireport制作小技巧
    Spring 自动装配 Bean
    Toad创建DBLINKsop
    Spring 读书笔记-----使用Spring容器(一)
    Spring读书笔记-----Spring的Bean之Bean的基本概念
    关于iOS开发中info.plist文件的解读
    iOS常用的第三方库GitHub地址
    NSUserDefault的使用
    论坛收集
    iOS开发的一些奇巧淫技
  • 原文地址:https://www.cnblogs.com/hjc1234/p/9752530.html
Copyright © 2011-2022 走看看