接口
接口使用interface關鍵字來定義,接口裏面只能寫沒有具體邏輯的方法(這與抽象類不同,抽象類裏還可以定義屬性,接口是不可以定義屬性的)。你可以把接口這樣理解:接口表示某些類具有的共同行為,即某些類都能做什麼;抽象類表示某些類都是什麼類,都屬於什麼類。看下面的接口定義,例如:
<?php
interface Icreature {
public function grow();
}
class Animal implements Icreature{
public function grow(){
echo "動物的生長,需要吃東西".PHP_EOL;
}
}
class Plant implements Icreature{
public function grow(){
echo "植物的生長,需要進行光合作用".PHP_EOL;
}
}
$dog = new Animal();
$rose = new Plant();
$dog->grow();
$rose->grow();
?>
執行以上語句,輸出如下:
動物的生長,需要吃東西
植物的生長,需要進行光合作用
注:定義一個接口,使用interface關鍵字,後面寫接口的名稱,然後在大括號裏寫上可以執行的方法,這個方法沒有具體的實現,例如上面定義了一個生物類接口Icreature;接口的名稱,最好以大寫的I開頭,將來一看到以I開頭的就表示接口,代碼易於理解。接口的具體實現需要使用implements來實現,並要實現接口中的方法(寫上具體的接口的方法邏輯),例如以上定義了動物類Animal 實現(implements)了 Icreature接口,並實現了動物類具體的生長方法grow,植物類Plant也一樣,只不過,動物類的生長需要吃東西,而植物類的生長需要進行光合作用!