PHP中extends关键字的作用和使用方法详解
更新时间:2023-10-28extends关键字的作用和使用方法
extends是PHP中的关键字,用于创建类的继承关系,允许一个子类继承一个父类。父类中的所有的公共、保护成员都会被子类继承下来,子类还可以声明自己的方法和属性。
使用extends创建子类
使用extends创建子类的语法如下所示:
class ChildClass extends ParentClass { // 类的实现代码 }
在上面的代码中,子类名后面跟着 extends 以及父类名,子类具有父类中所有的非私有属性和方法,包括静态属性、静态方法等。
子类继承父类的构造函数
如果子类中没有定义构造函数,那么父类中定义的构造函数会被自动调用。这意味着,当子类没有显式声明构造函数时,会调用父类的构造函数,就像下面的代码所示:
class ParentClass { function __construct() { echo "这是父类的构造函数"; } } class ChildClass extends ParentClass { } $obj = new ChildClass(); //输出: 这是父类的构造函数
当子类定义了构造函数时,需要通过 parent::__construct() 显式地调用父类的构造函数,如下所示:
class ParentClass { function __construct() { echo "这是父类的构造函数"; } } class ChildClass extends ParentClass { function __construct() { parent::__construct(); echo "这是子类的构造函数"; } } $obj = new ChildClass(); //输出: 这是父类的构造函数 这是子类的构造函数
在上面的代码中,子类继承了父类的构造函数,但又加入了自己的构造函数,继承的构造函数通过调用 parent::__construct() 显式调用。
总结
extends是PHP中用于创建类的继承关系的关键字。子类不仅可以继承父类中的属性和方法,还可以对属性和方法进行扩展或重写。如果子类没有定义自己的构造函数,则使用父类的构造函数,如果子类定义了自己的构造函数,则需要显式地调用父类的构造函数。