HOWTO · PHP
PHP 抽象クラス
このチュートリアルでは、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!