PHP課程
/ 接口
接口
PHP - 接口是什么?
接口允許您指定類應該實現(xiàn)哪些方法。
接口使得以相同的方式使用各種不同的類變得容易。當一個或多個類使用相同的接口時,這被稱為“多態(tài)”。
接口使用 interface
關鍵字聲明:
語法
<?php interface InterfaceName { public function someMethod1(); public function someMethod2($name, $color); public function someMethod3() : string; } ?>
PHP - 接口與抽象類
接口類似于抽象類。接口和抽象類之間的區(qū)別如下:
- 接口不能有屬性,而抽象類可以
- 接口的所有方法都必須是公開的,而抽象類的方法是公開或受保護的
- 接口中的所有方法都是抽象的,因此它們不能在代碼中實現(xiàn),并且不需要
abstract
關鍵字 - 類可以在實現(xiàn)接口的同時從另一個類繼承
PHP - 使用接口
要實現(xiàn)接口,類必須使用 implements
關鍵字。
實現(xiàn)接口的類必須實現(xiàn)接口的所有方法。
實例
<?php interface Animal { public function makeSound(); } class Cat implements Animal { public function makeSound() { echo "Meow"; } } $animal = new Cat(); $animal->makeSound(); ?>運行實例 ?
點擊 "運行實例" 按鈕查看在線實例
從上面的例子中,假設我們想編寫一個管理一組動物的軟件。所有動物都可以執(zhí)行某些操作,但每種動物都以自己的方式執(zhí)行這些操作。
使用接口,我們可以編寫一些代碼,這些代碼可以為所有動物工作,即使每種動物的行為都不同:
實例
<?php // 接口定義 interface Animal { public function makeSound(); } // 類定義 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 "; } } // 創(chuàng)建一個動物列表 $cat = new Cat(); $dog = new Dog(); $mouse = new Mouse(); $animals = array($cat, $dog, $mouse); // 讓動物們發(fā)出聲音 foreach($animals as $animal) { $animal->makeSound(); } ?>運行實例 ?
點擊 "運行實例" 按鈕查看在線實例
例子解釋
Cat
、Dog
和 Mouse
都是實現(xiàn) Animal
接口的類,這意味著它們都可以使用 makeSound()
方法來發(fā)出聲音。因此,我們可以遍歷所有動物并讓它們發(fā)出聲音,即使我們不知道每種動物的類型。
由于接口沒有告訴類如何實現(xiàn)該方法,因此每種動物都可以以自己的方式發(fā)出聲音。