在PHP中,继承是面向对象编程(OOP)的一个重要特性,允许一个类(子类)继承另一个类(父类)的属性和方法。以下是PHP中继承父类的一些关键点:
基本继承:
extends
关键字来实现继承。public
和 protected
)属性和方法。class ParentClass {
public $property = 'Parent Property';
public function method() {
echo 'Parent Method';
}
}
class ChildClass extends ParentClass {
// 子类继承了父类的属性和方法
}
$child = new ChildClass();
echo $child->property; // 输出: Parent Property
$child->method(); // 输出: Parent Method
方法重写:
class ParentClass {
public function method() {
echo 'Parent Method';
}
}
class ChildClass extends ParentClass {
public function method() {
echo 'Child Method';
}
}
$child = new ChildClass();
$child->method(); // 输出: Child Method
访问父类的方法:
parent::
来调用父类的方法。class ParentClass {
public function method() {
echo 'Parent Method';
}
}
class ChildClass extends ParentClass {
public function method() {
parent::method(); // 调用父类的方法
echo 'Child Method';
}
}
$child = new ChildClass();
$child->method(); // 输出: Parent Method Child Method
构造函数继承:
parent::__construct()
。class ParentClass {
public function __construct() {
echo 'Parent Constructor';
}
}
class ChildClass extends ParentClass {
public function __construct() {
parent::__construct(); // 调用父类的构造函数
echo 'Child Constructor';
}
}
$child = new ChildClass(); // 输出: Parent Constructor Child Constructor
访问控制:
public
:属性和方法可以在任何地方访问。protected
:属性和方法只能在类内部和子类中访问。private
:属性和方法只能在类内部访问,子类无法继承。class ParentClass {
public $publicProperty = 'Public';
protected $protectedProperty = 'Protected';
private $privateProperty = 'Private';
public function method() {
echo $this->publicProperty;
echo $this->protectedProperty;
echo $this->privateProperty;
}
}
class ChildClass extends ParentClass {
public function method() {
echo $this->publicProperty; // 可以访问
echo $this->protectedProperty; // 可以访问
// echo $this->privateProperty; // 无法访问
}
}
$child = new ChildClass();
$child->method();
抽象类和接口:
abstract class ParentClass {
abstract public function method();
}
class ChildClass extends ParentClass {
public function method() {
echo 'Implemented Method';
}
}
$child = new ChildClass();
$child->method(); // 输出: Implemented Method
interface MyInterface {
public function method();
}
class ChildClass implements MyInterface {
public function method() {
echo 'Implemented Method';
}
}
$child = new ChildClass();
$child->method(); // 输出: Implemented Method
多重继承:
interface InterfaceA {
public function methodA();
}
interface InterfaceB {
public function methodB();
}
class ChildClass implements InterfaceA, InterfaceB {
public function methodA() {
echo 'Method A';
}
public function methodB() {
echo 'Method B';
}
}
$child = new ChildClass();
$child->methodA(); // 输出: Method A
$child->methodB(); // 输出: Method B
这些是PHP中继承父类的一些主要概念和用法。通过继承,可以实现代码的重用和扩展,提高代码的可维护性和可读性。