引言

接口和抽象類是面向?qū)ο缶幊蹋∣OP, Object Oriented programming)中兩個(gè)繞不開的概念,二者相似而又有所不同。接下來,我們來了解二者的概念并比較它們的異同。

什么是抽象類?

抽象類是一種特殊的類,該類不能被實(shí)例化。抽象類的存在就是為了被繼承,即抽象類可以被其它類繼承但不能被實(shí)例化。那么,我們?yōu)槭裁葱枰粋€(gè)無法被實(shí)例化的類呢?這樣做的優(yōu)點(diǎn)是,通過抽象類我們制定了一份強(qiáng)制所有子類必須遵守的合約,使所有子類有著一致的層次結(jié)構(gòu)。抽象類提供了一種規(guī)范用于規(guī)定子類如何進(jìn)行工作,子類可根據(jù)自身情況來重寫抽象類中的抽象成員(及其它可被重寫的成員)以滿足自身需求。

抽象類作為一個(gè)基類,可以包含已實(shí)現(xiàn)的成員,同時(shí)應(yīng)至少包含一個(gè)抽象成員,否則就沒必要使用抽象類了。如果一個(gè)抽象類中僅僅包含抽象方法,那么這時(shí)抽象類就和接口很像了。

什么是接口?

接口中不能包含任何被實(shí)現(xiàn)的成員,即接口中只能包含成員的簽名。如,沒有方法體的方法、只包含訪問器關(guān)鍵字(set、get)的屬性等。和抽象類類似,接口也是一份合約。C#中,接口和抽象類的主要區(qū)別是,類可以實(shí)現(xiàn)多個(gè)接口,但只能繼承一個(gè)(抽象)類。

比較異同

特征接口抽象類
是否支持多繼承支持不支持
默認(rèn)實(shí)現(xiàn)接口中不能包含任何已實(shí)現(xiàn)的成員

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式

我想了解如何學(xué)習(xí)

姓名:
手機(jī):
留言:
 
  • <noscript id="ss2oo"><abbr id="ss2oo"></abbr></noscript>
    <source id="ss2oo"><rt id="ss2oo"></rt></source>
        • <option id="ss2oo"></option>
        • <menu id="ss2oo"><cite id="ss2oo"></cite></menu><source id="ss2oo"></source>
          <noscript id="ss2oo"><s id="ss2oo"></s></noscript>
          • <optgroup id="ss2oo"><strike id="ss2oo"></strike></optgroup>