PHP 抽象類
抽象類是具有至少一種抽象方法的類。本教程演示如何在 PHP 中建立和使用抽象類。
PHP 抽象類
在 PHP 中,抽象類是使用 abstract
關鍵字宣告的,這與 C++ 不同。抽象類應該至少包含一個沒有任何實際程式碼的抽象方法;此方法只有用 abstract
關鍵字宣告的名稱和引數。
抽象類的目的是提供一種模板來繼承並強制繼承類實現抽象方法。抽象類介於純介面和普通類之間。
介面也可以是抽象類的特殊情況,其中每個方法都是抽象的。抽象類永遠不能被例項化,如果任何類包含一個抽象方法,則該類必須是抽象的。
抽象類的語法是:
<?php
abstract class Demo
{
abstract function Method_Name(Parameters);
}
?>
此語法使用抽象方法 Method_Name
建立一個抽象類。
讓我們嘗試一個 PHP 中抽象類的示例:
<?php
// Parent abstract class
abstract class Employee {
public $Employee_Name;
public function __construct($Employee_Name) {
$this->name = $Employee_Name;
}
abstract public function intro() : string;
}
// Child classes
class Jack extends Employee {
public function intro() : string {
return "Hello I am Project Manager at Delftstack! My Name is $this->name!";
}
}
class Michelle extends Employee {
public function intro() : string {
return "Hi I am Human Resource Manager at Delftstack! My Name is $this->name!";
}
}
class John extends Employee {
public function intro() : string {
return "Hey I am a Senior Developer at Delftstack! My Name is $this->name!";
}
}
// Create objects from the child classes of abstract class
$Jack = new Jack("Jack");
echo $Jack->intro();
echo "<br>";
$Michelle = new Michelle("Michelle");
echo $Michelle->intro();
echo "<br>";
$John = new John("John");
echo $John->intro();
?>
Jack、Michelle 和 John 是從抽象類 Employee
繼承的,這意味著他們可以使用公共 Employee_Name
屬性和 Employee
抽象類的公共 __construct
方法,只是因為繼承。但是 intro()
是抽象方法,這就是它在所有類中定義的原因。
檢視程式碼的輸出:
Hello I am Project Manager at Delftstack! My Name is Jack!
Hi I am Human Resource Manager at Delftstack! My Name is Michelle!
Hey I am a Senior Developer at Delftstack! My Name is John!
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook