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()
方法。このため、すべての動物をループして、それぞれの動物の種類がわからなくても、音を出すように指示できます。
インターフェイスはメソッドの実装方法をクラスに指示しないため、各動物は独自の方法で音を出すことができます。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。