📜  PHP oops中的继承(1)

📅  最后修改于: 2023-12-03 14:45:12.397000             🧑  作者: Mango

PHP OOP中的继承

继承是面向对象编程中的一个重要概念,可以让一个类(子类)从另一个类(父类)继承属性和方法。在PHP中,继承可以提高代码的复用性和可维护性。

继承的定义

继承是面向对象编程中的一种机制,通过该机制,一个已有的类可以被另一个类所继承,继承类被称为子类,被继承类被称为父类。子类可以继承父类中定义的属性和方法,并且可以添加自己的属性和方法。

如何实现继承

在PHP中,使用 extend 关键字来实现继承。关键字后面紧跟父类的名称,例如:

class ChildClass extends ParentClass {
  // 子类的属性和方法
}
继承的特点
  1. 子类是一个新的类,可以有自己的属性和方法,也可以重载(Override)父类的方法。

  2. 子类可以访问父类中的所有 public 和 protected 属性和方法,但不能访问 private 属性和方法。

  3. 子类可以继承多个父类,但 PHP 不支持多重继承。

继承的优点
  1. 提高代码复用性:通过继承,子类可以沿袭父类的属性和方法,不必再重复定义。同时,也可以在子类中添加新的属性和方法,增加了灵活性。

  2. 提高代码可维护性:继承可以提高代码的可读性和可维护性,因为所有相关的代码都集中在一个地方。

示例代码

下面的代码演示了继承的基本用法:

class Person {
  public $name;
  public $age;

  public function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age;
  }

  public function getInfo() {
    echo "Name: " . $this->name . ", Age: " . $this->age;
  }
}

class Student extends Person {
  public $school;

  public function __construct($name, $age, $school) {
    parent::__construct($name, $age);
    $this->school = $school;
  }

  public function getSchoolInfo() {
    echo "School: " . $this->school;
  }
}

$student = new Student('John', 20, 'Harvard');
$student->getInfo(); // Output: Name: John, Age: 20
$student->getSchoolInfo(); // Output: School: Harvard

以上代码中,我们定义了一个 Person 类,有两个属性 $name 和 $age,以及一个方法 getInfo()。我们又定义了一个 Student 类,继承了 Person 类,并添加了一个 $school 属性和一个 getSchoolInfo() 方法。在实例化 Student 类时,我们可以调用父类的构造方法 parent::__construct() 来初始化父类的属性,同时也可以调用子类自己的方法 getSchoolInfo()。

总结

继承是PHP面向对象编程中的一个重要概念,可以提高代码复用性和可维护性。通过继承,子类可以继承父类的属性和方法,并可以添加自己的属性和方法。在实现继承时,使用 extend 关键字来指定父类名称。在子类中,使用 parent 关键字来访问父类的属性和方法。