目次

implementsとextendsの違い

implements と extends は、PHP のクラス継承とインターフェース実装に関連するキーワードです。それぞれ異なる目的で使用されます。

implements

implements キーワードは、クラスがインターフェースを実装する際に使用されます。インターフェースは、クラスが持つべきメソッドのシグネチャ(名前、引数、戻り値型)を定義しますが、実装(メソッドの内部動作)は提供しません。インターフェースを実装するクラスは、インターフェースで定義されたすべてのメソッドを実装する必要があります。

interface Animal
{
    public function makeSound();
}
 
class Dog implements Animal
{
    public function makeSound()
    {
        echo "Woof!";
    }
}

extends

extends キーワードは、クラスが別のクラスを継承する際に使用されます。クラス継承を使うと、親クラスのプロパティとメソッドを子クラスが引き継ぐことができます。これにより、既存のコードを再利用し、コードの重複を避けることができます。子クラスは、親クラスのメソッドをオーバーライド(上書き)することで、独自の実装を提供することができます。

class Animal
{
    public function makeSound()
    {
        echo "The animal makes a sound.";
    }
}
 
class Dog extends Animal
{
    public function makeSound()
    {
        echo "Woof!";
    }
}

まとめ

implements は、インターフェースを実装するクラスで使用されます。インターフェースはメソッドのシグネチャのみを提供し、具体的な実装は提供しません。

extends は、クラスが別のクラスを継承する際に使用されます。親クラスのプロパティとメソッドを子クラスが引き継ぎ、必要に応じてオーバーライドすることができます。