c语言编程笔录

首页 >   > 笔记大全

笔记大全

PHP中extends关键字的作用和使用方法详解

更新时间:2023-10-28

extends关键字的作用和使用方法

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中用于创建类的继承关系的关键字。子类不仅可以继承父类中的属性和方法,还可以对属性和方法进行扩展或重写。如果子类没有定义自己的构造函数,则使用父类的构造函数,如果子类定义了自己的构造函数,则需要显式地调用父类的构造函数。