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!