在面向對象編程中,抽象類與抽象方法是構建可擴展架構的關鍵機制。本文系統梳理 PHP 中抽象類的定義規則、使用特性及進階應用,助力開發者掌握 OOP 核心概念。
僅聲明方法簽名而無方法體(無大括號實現)的方法,必須使用 abstract 關鍵字修飾,以分號結束聲明。
abstract function fun1();
包含至少一個抽象方法的類,必須聲明為 abstract class。抽象類不能被實例化,只能被繼承。
abstract 關鍵字abstract class 聲明<?php
abstract class User {
abstract protected function getUser(); // 抽象方法
public function print_content() {
print $this->getUser(); // 調用抽象方法
}
}
class vipUser extends User {
protected function getUser() {
return "抽象類與抽象方法示例";
}
}
$user = new vipUser();
$user->print_content(); // 輸出:抽象類與抽象方法示例
?>
子抽象類擴展父抽象類時,不能重寫父類的抽象方法,只能新增或繼承。
抽象類支持聲明靜態抽象方法,實現時必須保持靜態特性:
<?php
abstract class User {
protected static $sal = 0;
static abstract function getSal();
static abstract function setSal($sal);
}
class VipUser extends User {
static function getSal() {
return self::$sal;
}
static function setSal($sal) {
self::$sal = $sal;
}
}
VipUser::setSal(100);
echo "薪資: " . VipUser::getSal(); // 輸出:薪資: 100
?>
掌握抽象類與抽象方法,能顯著提升代碼的可維護性與擴展性,是 PHP 進階開發必備技能。