PHP的类和对象(四)访问控制和继承

来源:互联网 发布:销售数据统app 编辑:程序博客网 时间:2024/05/22 00:26

  访问控制

  对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的。被定义为公有的类成员可以在任何地方被访问。被定义为受保护的类成员则可以被其自身以及其子类和父类访问。被定义为私有的类成员则只能被其定义所在的类访问。

  

PHP的类和对象(四)访问控制和继承

  默认为Public,var也是Public。

  

PHP的类和对象(四)访问控制和继承

  

PHP的类和对象(四)访问控制和继承

  访问同一个对象类型的私有成员

  

PHP的类和对象(四)访问控制和继承

  如果构造函数定义成了私有方法,就不能直接实例化对象了,这时候一般通过静态方法进行实例化,在设计模式中会经常使用这样的方法来控制对象的创建,比如单例模式只允许有一个全局唯一的对象。

  

PHP的类和对象(四)访问控制和继承

  对象继承

  通过extends来继承,子类就会继承父类所有公有的和受保护的方法。除非子类覆盖了父类的方法,被继承的方法都会保留其原有功能。

  

PHP的类和对象(四)访问控制和继承

  如果父类中的方法被声明为 final,则子类无法覆盖该方法。同样如果一个类被声明为 final,则不能被继承。 需要注意的是: 属性不能被定义为 final,只有类和方法才能被定义为 final。

  如果新的类中没有自己的构造函数,那么子类会自动调用父类的构函数。

  子类可以使用parent::方法()或者$this->方法()(不建议使用)来调用父类的函数。

  如果一个子类中的方法与父类同名,那么 parent::方法() 调用的是父类的方法,而 $this->方法() 调用的是子类的方法。

  属性无法区分父类和子类,可以使用$this->属性(没有$)调用,子类同名属性会覆盖父类的。

0 0
原创粉丝点击