抽象類別(abstract class )

來源:互聯網
上載者:User
      抽象類別  抽象類別與介面緊密相關。然介面又比抽象類別更抽象,這主要體現在它們的差別上:1)類可以實現無限個介面,但僅能從一個抽象(或任何其他類型)類繼承,從抽象類別派生的類仍可實現介面,從而得出介面是用來解決多重繼承問題的。2)抽象類別當中可以存在非抽象的方法,可介面不能且它裡面的方法只是一個聲明必須用public來修飾沒有具體實現的方法。3)抽象類別中的成員變數可以被不同的修飾符來修飾,可介面中的成員變數預設的都是靜態常量(static final)。4)這一點也是最重要的一點本質的一點"抽象類別是對象的抽象,然介面是一種行為規範"。

  以上是它們本身的異同,下面再來從實際應用講講它們的異同!

  不同之處:

  1、定義

  抽象類別表示該類中可能已經有一些方法的具體定義,但是介面就僅僅只能定義各個方法的介面(方法名,參數列表,傳回型別),並不關心具體細節。

  1、用法

  1)在繼承抽象類別時,必須覆蓋該類中的每一個抽象方法,而每個已實現的方法必須和抽象類別中指定的方法一樣,接收相同數目和類型的參數,具有同樣的傳回值,這一點與介面相同。

  2)當父類已有實際功能的方法時,該方法在子類中可以不必實現,直接引用的方法,子類也可以重寫該父類的方法(繼承的概念)。

  3)而實現 (implement)一個介面(interface)的時候,是一定要實現介面中所定義的所有方法,而不可遺漏任何一個。

  4)另外,抽象類別不能產生對象的,但可以由它的實作類別來聲明對象。

  有鑒於此,在實現介面時,我們也常寫一個抽象類別,來實現介面中的某些子類所需的通用方法,接著在編寫各個子類時,即可繼承該抽象類別來使用,省去在每個都要實現通用的方法的困擾。

聯繫我們

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