介面與抽象類別的區別

來源:互聯網
上載者:User

抽象類:a.包含一個或多個抽象方法或屬性的類必須定義為抽象類
       b.繼承抽象類的派生類必須實現抽象類的所有抽象方法或
         屬性,否則該派生類也必是抽象類,至到完全實現為止.
       c.抽象類必須是公用的(public).
       d.抽象類不存在對象實例,但可以申明引用變量.另外抽象類
         中可以有非抽象方法,供派生類調用.
介面:1.介面中定義抽象的方法,屬性,索引,事件
     2.介面必須由類來實現,故其只能是默認public的,不可顯式申明,不能申明為
      static
     3.實現介面的類必須完全實現介面中的所有的方法屬性,索引,事件,不能只實現一部分
     4.一個類只能繼承一個基類,但可以實現多個介面,其中繼承的基類必須放在最
       前面,然後是介面,它們用逗號分開.

 

1、介面中只能有方法,不能有欄位,抽象類別中即可以有方法,也可以有屬性和欄位;
2、介面中的方法不需要實現,而抽象類別中可以有實現了的方法;
3、介面在一定程度上可以代替多繼承。
4、實現介面,也就意味著必須實現介面中的所有方法。如果繼承抽象類別的子類還是抽象類別,則可以只實現部分方法。
5、介面和抽象類別都不被執行個體化成對象。

 

 

我想,許多人對抽像與介面不清楚的原因,可能是不知什麼情況下用介面好還是用抽象好吧。
書上講了一大堆,高人說過無數次。我覺得用介面主要原因是項目越做越大,而且參與的人員多,張三有張三的寫法,李四有李四的寫法,但為了提高開發效率,我們要做一些基礎性的工作,比如一些通用的代碼方法、函數。於是我們就把這些方法和函數放在抽象類別,子類只要繼承就擁有該法了,這個基礎類就是抽像類。但是編程還會碰到另一種情況:經理叫張三開發系統用戶端,王五程式開發伺服器,但用戶端怎麼訪問服務端呢,這就要有個中間契約,雙方都能看懂,只要雙方遵守,就知通訊。這就是介面。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.