PHP物件導向之介面

來源:互聯網
上載者:User

標籤:世界   class   編程思想   public   span   設計   extend   屬性   沒有   

介面(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{

//介面的成員定義;。。。。

}

 

類和介面的大總結

 

 

PHP物件導向之介面

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.