接口:
規定一個類該怎麼去寫,規定一個類必須要去實現哪些方法!
抽象類是爲了寫一個類用於以後更細的類去擴展細化它,接口是直接規定一個類應該具有哪些方法
接口是對一個類方法的規劃(把接口當成軍令狀)
interface 接口名稱{
public function 方法名([參數]);
}
注:
- 接口名稱以 i 開頭
- 接口只定義方法
- 接口中所有的方法必須是public
- 接口中的方法僅僅是方法名稱和參數而不包括具體實現
怎麼把一個類和接口關聯:
class 類名稱 implements 接口名稱{
}
注:
- 如果一個類實現了接口那麼這個類必須實現接口中定義的所有方法
- 類要實現接口,必須使用和接口中所定義的方法完全一致的方式
- 類可以實現多個接口
class 類名稱 implements 接口1,接口2{
}
實現多個接口時,接口中的方法不能重複
- 接口也可以繼承其他接口
- 接口中也可以定義常量,接口常量和類常量完全相同,但是不能被子類或子接口所覆蓋
- instanceof 可以檢測一個變量是否實現一個接口
<?php
interface iA{
public function aa();
public function bb();
}
interface iB{
public function cc();
public function dd();
}
interface iC extends iA{
public function aa();
public function bb();
}
class ClassA implements iA{ //接軍令狀
public function aa(){
}
public function bb(){
}
}
class ClassB implements iA,iB{
public function aa(){
}
public function bb(){
}
public function cc(){
}
public function dd(){
}
}