📜  如何继承一个类php(1)

📅  最后修改于: 2023-12-03 15:09:14.073000             🧑  作者: Mango

如何继承一个类 in PHP

在PHP中,一个类可以继承自另一个类,并且可以通过继承获得父类的属性和方法。这种继承关系可以用一个关键词 extends 来实现。

定义基类

首先,我们需要定义一个基类(即父类),这个基类中包含我们想要继承的属性和方法。下面是一个简单的 Person 基类的定义,它包含两个属性以及两个方法:

class Person {
    protected $name;
    protected $age;
    
    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
    
    public function sayHello() {
        echo "Hello, my name is {$this->name}.";
    }
} 

这个基类包含了一个构造函数 __construct() 和一个公共的方法 sayHello()。注意到 $name$age 属性被声明为 protected。这意味着子类可以访问这些属性,但是其他代码不可以。

定义子类

接下来,我们需要定义一个子类(即派生类),这个子类继承自我们刚才定义的 Person 基类。你可以通过使用 extends 关键词将子类定义为基类的一个扩展。我们将一个新的属性 $gender 添加到这个子类中,然后重写 sayHello() 方法。下面是子类 Student 的定义:

class Student extends Person {
    protected $gender;
    
    public function __construct($name, $age, $gender) {
        parent::__construct($name, $age);
        $this->gender = $gender;
    }
    
    public function sayHello() {
        parent::sayHello();
        echo " I am a {$this->gender}.";
    }
} 

Student 继承了 Person 基类,并添加了一个新的属性 $gender。在构造函数中我们使用了 parent::__construct() 来调用基类的构造函数。这意味着在创建 Student 对象时,我们需要传递 $name$age 参数,然后 $gender 属性被初始化。

Student 子类还重写了 sayHello() 方法,它首先使用 parent::sayHello() 来调用基类的方法,然后添加了一个额外的字符串来指明这个学生的性别。

使用子类

最后,我们可以创建一个 Student 对象,并调用它的 sayHello() 方法:

$student = new Student('Peter', 21, 'male');
$student->sayHello();

这将输出:

Hello, my name is Peter. I am a male.

我们可以看到,Student 子类成功继承了 Person 基类,并重写了 sayHello() 方法。通过这个简单的例子,我们可以了解如何在PHP中继承一个类。

参考资料