开发者学堂课程【PHP 进阶教程-由浅入深掌握面向对象开发-第二阶段:PHP 继承特点】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/712/detail/12695
PHP 继承特点
主要内容:
一、php 继承特点
二、示例
一、php 继承特点
PHP 是从面向过程到面向对象转变的一种编程语言,所以与纯面向对象或天生为纯面向对象设计的语言完全不同。
1.PHP 只能单继承,只有一个父类。
像有些语言,多继承,例如继承多个比如说孩子可以继承爸爸,也可以继承妈妈,但 PHP 不可以。
2.PHP 继承中,只有私有方法不能继承
其他的都可以继承,就是说私有途径不能用
3.PHP 允许继承父类中的构造方法和析构方法
有的语言不允许,但 PHP 是可以继承构造方法的。
二、示例
看具体的例子,这个地方就不写具体的代码了,理论性的东西通过案例就能看到。
1.只能单继承就是子类只有一个父类
有 man 类,有 woman 类,ladyboy 只能继承 man 类或者 woman 类。所以下列代码是错误的。
代码如下:
class Man{} class woman{}
class Ladyboy extends Man,woman{}
# PHP 中错误,不允许继承多个父类
2.PHP 若继承多个类,可以使用链式继承
这里面的设计不是很合理,下列代码实现了 ladyboy 既继承了 man 类,也继承了 woman 类,包含了 man 类和 woman 类中所有的成员,但是这张继承用在这显然不合适,因为这三类属于同类,属于同级别,同级别无法继承,一个来自于父类。
代码如下:
c1ass Man{}
class woman extends Man{}
class Ladyboy extends woman{}
#Ladyboy
包含了 Man 和 woman 类中所有可继承的成员
上述特点并没有完全举例子,因为有些之前已经碰到过。
最后做个小结,其实PHP的继承和传统的面向对象继承有着一些小区别,因为 PHP 是范类的,它并不是面向对象继承的风格,所以在开发的时候必须使用 PHP 的规则,不要使用纯面向对象和面向对象思想理论的内容,要结合实际。