PHP 抽象クラス
抽象クラスは、少なくとも 1つの抽象メソッドを持つクラスです。このチュートリアルでは、PHP で抽象クラスを作成して使用する方法を示します。
PHP 抽象クラス
PHP では、C++ とは異なり、抽象クラスは abstract
キーワードを使用して宣言されます。抽象クラスには、実際のコードを含まない抽象メソッドが少なくとも 1つ含まれている必要があります。このメソッドには、abstract
キーワードで宣言された名前とパラメーターのみがあります。
抽象クラスの目的は、継承元のテンプレートの種類を提供し、継承クラスに抽象メソッドの実装を強制することです。抽象クラスは、純粋なインターフェースと通常のクラスの間の何かです。
インターフェイスは、すべてのメソッドが抽象である抽象クラスの特殊なケースにすることもできます。抽象クラスをインスタンス化することはできません。クラスに 1つの抽象メソッドが含まれている場合、そのクラスは抽象である必要があります。
抽象クラスの構文は次のとおりです。
<?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