抽象類和介面

2021-10-21 17:30:20 字數 1382 閱讀 4633

一.抽象類:抽象類用來表示對問題領域進行分析設計得出的抽象概念,是對一系列本質上相同的具體概念的抽象。

舉例:以動物為例,定義乙個抽象類animal

public abstract class animal

//公共屬性

public abstract float price //抽象屬性必須是公有的

public abstract void growinarea(); //抽象方法必須是公有的

}

定義乙個具體alaska dog類,繼承父類animal,子類繼承抽象類,需要有override抽象類中的抽象屬性和抽象方法,如果沒有override的,子類必須為抽象類

public class alaska dog:animal

}public override void growinarea()

}

static void main(string args)

輸出:我在世界各地都有,我的出生地是阿拉斯加西部,我現在的**是:100

二.介面:介面定義了所有類繼承介面時所應該遵循的語法合同,介面定義了語法合同「是什麼」部分,派生類定義了語法合同「怎麼做」部分。介面定義了屬性,方法和事件,這些也是介面的成員,介面只是對成員進行宣告,成員的定義是派生類的責任,介面提供了派生類應遵循的標準結構。抽象類在某種程度上與介面類似,但是他們大多只是用在只有少數由基類宣告由派生類實現時。

宣告介面:介面定義了乙個methodtoimplement的方法,該方法沒有引數和返回值,也沒有具體的實現。

inte***ce imyinte***ce

實現以上介面:

inte***ce imyinte***ce

class inte***ceimplementer:imyinte***ce

public void methodtoimplement()

_

三.抽象類和介面的區別

1.抽象類和介面的區別在於使用動機,使用抽象類是為了**的復用,而使用介面的動機是為了實現多型性。

2.介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。

抽象類表示的是,這個物件是什麼。介面表示的是,這個物件能做什麼。比如,男人,女人,這兩個類(如果是類的話……),他們的抽象類是人。說明,他們都是人。

人可以吃東西,狗也可以吃東西,你可以把「吃東西」定義成乙個介面,然後讓這些類去實現它.

所以,在高階語言上,乙個類只能繼承乙個類(抽象類)(正如人不可能同時是生物和非生物),但是可以實現多個介面(吃飯介面、走路介面)。

介面和抽象類

介面和抽象類 今天自學了一下介面,從第一次接觸介面又進一步理解介面的原理。想到介面或許我們更多的是想到和類的對比,而類中抽象類和介面又更為相似。現在我講下我對介面和抽象類的理解。如果單從具體 來看,對這兩個概念很容易模糊,甚至覺得介面就是多餘的,因為單從具體功能來看,除多重繼承外 c 抽象類似乎完全...

抽象類和介面

抽象類 1.是一種特殊的類,除了不能被例項化外,具有類得其他特性.2.抽象類的方法可以不宣告為abstract,此時可以實現方法提 如果宣告為abstract,則不可以實現方法體,只能宣告,如 public abstract int remove int i,int j 此時類必須宣告為抽象 3.乙...

抽象類和介面

1.抽象類 含有abstract修飾符的類即為抽象類。可用於實現 重用。抽象類與普通類的唯一區別 不能建立例項物件 允許有抽象方法,但不必須是抽象的。抽象類中定義的抽象方法必須在具體子類中實現,所以不能有抽象構造方法或抽象靜態方法 如果沒有全部實現抽象父類的抽象方法,子類也要定義為抽象型別。2.介面...