通過「人 → 學生」的經典繼承關系,展示 PHP OOP 的三大特性:封裝、繼承、多態(雖本例側重前兩者)。
<?php
// 父類:封裝共同屬性與行為
class Person {
public $name;
public $sex;
public $age;
public function say() {
echo "你好!<br>";
echo "我的名字是:" . $this->name . "<br>";
echo "我的性別是:" . $this->sex . "<br>";
}
}
// 子類:繼承並擴展
class Student extends Person {
public $school;
public function study() {
parent::say(); // 調用父類方法
echo "我的年齡是:" . $this->age . "<br>";
echo "我正在 " . $this->school . " 上學。";
}
}
// 實例化與使用
$p1 = new Student();
$p1->name = "張三";
$p1->sex = "男";
$p1->age = 18;
$p1->school = "某某中學";
$p1->study();
你好! 我的名字是:張三 我的性別是:男 我的年齡是:18 我正在某某中學上學。
| 概念 | 代碼體現 | 說明 |
|---|---|---|
| 屬性封裝 | public $name 等 | 將數據與操作綁定在對象內部 |
| 方法定義 | say(), study() | 對象的行為能力 |
| 繼承 | extends Person | 子類自動擁有父類非私有成員 |
| 父類調用 | parent::say() | 復用父類邏輯並擴展 |
| $this 指針 | $this->name | 指向當前實例對象 |
protected,提供 getter/setter 實現訪問控制__construct() 初始化必填屬性interface 定義行為契約__toString() 直接輸出對象信息此例適合 PHP OOP 初學者理解類與對象關系,建議動手修改屬性訪問權限、添加新方法體驗封裝與繼承的威力。