php面向对象
1、继承是利用extends进行子类和父类的关联
2、继承利用extends关键字实现
3、继承是指实现继承关系后,子类对象可以访问父类被继承的成员。而父类对象(直接实例化父类得到)不可以访问子类成员(没有关系)
- PHP中继承的本质是对象继承
- PHP中继承的内容:父类所有公有成员、受保护成员和私有属性,私有方法不能继承
- 受保护(protected)成员是专用于继承的,可以在父类或者子类内部访问
- 私有成员的访问只能在所属类中设定公有或者受保护方法实现访问
- 静态成员也遵循继承规则:即子类可以访问父类静态成员(满足继承条件下)
- PHP中继承的本质是对象继承
- PHP中继承的内容:父类所有公有成员、受保护成员和私有属性,私有方法不能继承
- 受保护(protected)成员是专用于继承的,可以在父类或者子类内部访问
- 私有成员的访问只能在所属类中设定公有或者受保护方法实现访问
- 静态成员也遵循继承规则:即子类可以访问父类静态成员(满足继承条件下)
final关键字
一般用于父类中,当子类重写或者覆盖父类的时候,直接会报错
所以不允许再被重写,和继承,防止功能上的感染。
final不能修饰成员属性,只能修饰方法和类
如果class上面添加上final会断子绝孙,不会继承
1,为了安全
2,没有必要
一、 抽象类abstractclass
1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类。
2 .抽象类不能被直接实例化。抽象类中只定义(或部分实现)子类需要的方法。子类可以通过继承抽象类并通过实现抽象类中的所有抽象方法,使抽象类具体化。
3 .如果子类需要实例化,前提是它实现了抽象类中的所有抽象方法。如果子类没有全部实现抽象类中的所有抽象方法,那么该子类也是一个抽象类,必须在 class 前面加上 abstract 关键字,并且不能被实例化。
二、 接口interface
1 .抽象类提供了具体实现的标准,而接口则是纯粹的模版。接口只定义功能,而不包含实现的内容。接口用关键字 interface 来声明。
2 . interface 是完全抽象的,只能声明方法,而且只能声明 public 的方法,不能声明 private 及 protected 的方法,不能定义方法体,也不能声明实例变量 。然而, interface 却可以声明常量变量 。但将常量变量放在 interface 中违背了其作为接口的作用而存在的宗旨,也混淆了 interface 与类的不同价值。如果的确需要,可以将其放在相应的 abstractclass 或 Class 中。
parent调用父类/self::调用自身