PHP面向對象之接口


接口(interface)技術

什么是接口?

先看抽象類:

abstract  class  類名  {

屬性1

屬性2

.....

非抽象方法1

非抽象方法2

......

抽象方法1

抽象方法2

......

}  

設想,將上述抽象類中“實在的成員”,刪除,即刪除那些非抽象的成員。則,自然該抽象類中,就只有抽象方法;

abstract  class  類名  {

抽象方法1

抽象方法2

......

}  

由此,可以理解為:這個抽象類,“太抽象了”,幾乎自己什么都沒做,就光讓別人做什么。

 

那么:

 

接口就是這樣一個“天然不實在”的家伙:

接口,就是規定,里面只能放“抽象方法”和“常量”的一種類似類的語法結構;

——可見,接口就是“比抽象類更抽象的”一種語法結構。

 

接口(interface)定義形式:

interface  接口名{

常量1

常量2

.....

抽象方法1

抽象方法2

.....

}

說明:

1,可見,接口中,只有常量(接口常量)和抽象方法兩種成員;

2,接口常量的使用形式為: 接口名稱::常量名稱;

3,接口中的抽象方法,不要使用abstract修飾,也不需要使用訪問控制修飾符,因為其天然就是public

 

 

為什么需要接口?

面向對象編程思想是對“現實世界”的描述(模擬)!

現實世界往往都都是多繼承的;

但:

出於降低類跟類之間關系的復雜度的考慮,就將語言設計為單繼承的;

但這樣,就無法表達出現實世界的多繼承特性;

則:

接口就是對沒有多繼承的類之間關系的一個補充;

 

因為:接口可以實現“多繼承”——但此時不稱為繼承而已,而是稱為“實現”;

即:

接口1  -->> 1

就稱為:類1實現了接口1

其本質,其實就是類1中,有了接口1中“特征信息”;

 

使用形式:

形式為:

class  類名  implements  接口名1, 接口名2....{

//類的定義。

}

這里,叫做,類實現了接口。

 

 

 

其中,接口跟接口之間,也可以繼承,跟類之間的繼承:

interface  接口1  extends  接口2{

//接口的成員定義;。。。。

}

 

類和接口的大總結

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM