php中抽象類別和介面的特點、區別和選擇

來源:互聯網
上載者:User

標籤:style   blog   color   使用   io   strong   資料   ar   div   

一.特點:

1、抽象類別特點

(1) 用 abstract 來修飾一個類,那麼這個類就是抽象類別;抽象類別絕對不能被執行個體化,即$abc = new 抽象類別名();會報錯。(2) 用abstract 來修飾一個方法,那麼該方法就是抽象方法;(3) 如果類中有一個抽象方法,那麼該類就必須定義為抽象類別;但反過來,抽象類別裡並不一定要有抽象方法。另外,抽象類別裡也可以有普通方法。(4) 抽象方法不能有方法體。即abstract function abc();------後面不能加大括弧{.........}。(5)、一個類繼承了某個抽象類別,那麼,它必須實現抽象類別中所有的抽象方法(除非,它也這些抽象方法聲明為抽象的,相當於抽象類別繼承了抽象類別)。 

2、介面的特點

(1) 介面的方法必須是公開的。
(2) 介面的方法預設是抽象的,所以不在方法名前面加abstract。
(3) 介面可以定義常量,但不能定義成員屬性,常量的定義和用法和類中常量一樣。
(4) 類可以實現多個介面(用逗號隔開)
(5) 介面也可以繼承介面。

 

二. 區別:

1、對介面的使用是通過關鍵字implements。對抽象類別的使用是通過關鍵字extends。當然介面也可以通過關鍵字extends繼承。

2、介面中不可以聲明成員變數(包括類靜態變數),但是可以聲明類常量。抽象類別中可以聲明各種類型成員變數,實現資料的封裝。

3、介面沒有建構函式,抽象類別可以有建構函式。

4、介面中的方法預設都是public類型的,而抽象類別中的方法可以使用private,protected,public來修飾。

5、一個類可以同時實現多個介面,但一個類只能繼承於一個抽象類別。

 

三 .選擇:

  • 如果要建立一個模型,這個模型將由一些緊密相關的對象採用,就可以使用抽象類別。如果要建立將由一些不相關對象採用的功能,就使用介面。
  • 如果必須從多個來源繼承行為,就使用介面。
  • 如果知道所有類都會共用一個公用的行為實現,就使用抽象類別,並在其中實現該行為。

 四.樣本:

 

abstract class people{var $name;abstract function sayName();}interface mother{function beautiful();}interface father{function clever();}class son extends people implements mother,father{function beautiful(){echo "i‘m very beautiful!";}function clever(){echo "i‘m very clever!";}function __construct($name){$this->name = $name;}function sayName(){echo $this->name;}}$zww = new son("Tom");$zww->beautiful();$zww->clever();$zww->sayName();

 

  輸出結果:i‘m very beautiful!i‘m very clever!Tom

 

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.