PHP是一種流行的服務(wù)器端腳本語(yǔ)言,開(kāi)發(fā)人員可以使用它來(lái)創(chuàng)建動(dòng)態(tài)網(wǎng)站和Web應(yīng)用程序。PHP類是專門的對(duì)象,它的屬性和方法都在一個(gè)類中定義。但是,有時(shí)候我們想要在一個(gè)類中包含其他類中的所有方法和屬性,這時(shí)就需要用到PHP的extends關(guān)鍵字,它能夠?qū)崿F(xiàn)繼承。
下面,我們來(lái)看一個(gè)例子。假設(shè)我們有兩個(gè)類分別是Person和Student:
class Person {
protected $name;
protected $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
public function getName() {
return $this->name;
}
public function getAge() {
return $this->age;
}
}
class Student {
protected $grade;
public function setGrade($grade) {
$this->grade = $grade;
}
public function getGrade() {
return $this->grade;
}
}
在這里,我們定義了Person類和Student類。Person類有$name和$age兩個(gè)屬性,以及getName()和getAge()兩個(gè)方法。Student類有$grade屬性,以及setGrade()和getGrade()兩個(gè)方法。
現(xiàn)在我們想要讓Student類繼承Person類,這樣我們就可以在Student類中使用Person類中的方法和屬性。
class Student extends Person {
protected $grade;
public function setGrade($grade) {
$this->grade = $grade;
}
public function getGrade() {
return $this->grade;
}
}
在這里,我們?cè)赟tudent類的聲明中添加了extends Person,表示Student類繼承自Person類。現(xiàn)在Student類可以使用Person類中的方法和屬性。
下面我們來(lái)實(shí)例化Student類,并調(diào)用getName()方法和setGrade()方法。
$student = new Student('Tom', 18);
$student->setGrade(90);
echo $student->getName(); // 輸出Tom
echo $student->getGrade(); // 輸出90
在這里,我們用new關(guān)鍵字實(shí)例化了Student類,并傳遞了$name和$age參數(shù)。我們還用setGrade()方法將$grade屬性設(shè)置為90。最后,我們輸出了getName()和getGrade()方法的結(jié)果。
繼承是PHP面向?qū)ο缶幊讨兄匾囊徊糠帧Mㄟ^(guò)extends關(guān)鍵字,我們可以輕松地?cái)U(kuò)展已有的類,并復(fù)用類中的功能。在實(shí)際的開(kāi)發(fā)中,我們應(yīng)該靈活使用繼承,避免使用過(guò)多的繼承,以免導(dǎo)致類的耦合性過(guò)高。