# implementsとextendsの違い implements と extends は、PHP のクラス継承とインターフェース実装に関連するキーワードです。それぞれ異なる目的で使用されます。 ### implements implements キーワードは、クラスがインターフェースを実装する際に使用されます。インターフェースは、クラスが持つべきメソッドのシグネチャ(名前、引数、戻り値型)を定義しますが、実装(メソッドの内部動作)は提供しません。**インターフェースを実装するクラスは、インターフェースで定義されたすべてのメソッドを実装する必要があります。** ```php interface Animal { public function makeSound(); } class Dog implements Animal { public function makeSound() { echo "Woof!"; } } ``` ### extends extends キーワードは、クラスが別のクラスを継承する際に使用されます。クラス継承を使うと、親クラスのプロパティとメソッドを子クラスが引き継ぐことができます。これにより、**既存のコードを再利用し、コードの重複を避けることができます。**子クラスは、親クラスのメソッドをオーバーライド(上書き)することで、独自の実装を提供することができます。 ```php class Animal { public function makeSound() { echo "The animal makes a sound."; } } class Dog extends Animal { public function makeSound() { echo "Woof!"; } } ``` ### まとめ `implements` は、インターフェースを実装するクラスで使用されます。インターフェースはメソッドのシグネチャのみを提供し、具体的な実装は提供しません。 `extends` は、クラスが別のクラスを継承する際に使用されます。親クラスのプロパティとメソッドを子クラスが引き継ぎ、必要に応じてオーバーライドすることができます。