TECH I.S.

PHP OOP - インターフェイス


PHP - インターフェイスとは?

インターフェイスを使用すると、クラスが実装するメソッドを指定できます。

インターフェイスを使用すると、さまざまな異なるクラスを同じ方法で簡単に使用できます。1つまたは複数のクラスが同じインターフェイスを使用することを「ポリモーフィズム」と呼びます。

インターフェイスは、interfaceキーワード:

構文

<?php interface InterfaceName {   public function someMethod1();   public function someMethod2($name, $color);   public function someMethod3() : string; } ?>

PHP - インターフェースと抽象クラス

インターフェイスは抽象クラスに似ています。インターフェイスと抽象クラスの違いは次のとおりです。

  • インターフェイスはプロパティを持つことができませんが、抽象クラスはプロパティを持つことができます。
  • すべてのインターフェイス メソッドは public である必要がありますが、抽象クラス メソッドは publicまたは保護されています。
  • インターフェイス内のすべてのメソッドは抽象的であるため、コードで実装することはできません。また、abstractキーワードは必要ありません
  • クラスは、別のクラスから継承しながら同時にインターフェイスを実装できます。

PHP - インターフェイスの使用

インターフェイスを実装するには、クラスでimplementsキーワード。

インターフェイスを実装するクラスは、インターフェイスの全てのメソッドを実装する必要があります。

<?php interface Animal {   public function makeSound(); } class Cat implements Animal {   public function makeSound() {     echo "Meow";   } } $animal = new Cat(); $animal->makeSound(); ?>

上記の例から、動物の群れを管理するソフトウェアを書きたいとしましょう。すべての動物ができるアクションがありますが、各動物は独自の方法でそれを行います。

インターフェイスを使用すると、動物ごとに異なる動作をする場合でも、すべての動物に対して機能するコードを書くことができます。

<?php // Interface definition interface Animal {   public function makeSound(); } // Class definitions class Cat implements Animal {   public function makeSound() {     echo " Meow ";   } } class Dog implements Animal {   public function makeSound() {     echo " Bark ";   } } class Mouse implements Animal {   public function makeSound() {     echo " Squeak ";   } } // Create a list of animals $cat = new Cat(); $dog = new Dog(); $mouse = new Mouse(); $animals = array($cat, $dog, $mouse); // Tell the animals to make a sound foreach($animals as $animal) {   $animal->makeSound(); } ?>

例の説明

Cat、Dog、MouseはすべてAnimalインターフェースを実装するクラスです。つまり、それらはすべて、makeSound()方法。このため、すべての動物をループして、それぞれの動物の種類がわからなくても、音を出すように指示できます。

インターフェイスはメソッドの実装方法をクラスに指示しないため、各動物は独自の方法で音を出すことができます。



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細