簡體   English   中英

C#中的抽象類和接口類有什么不同?

[英]What is different between an abstract and an Interface class in C#?

C#中的抽象類和接口類有什么不同?

接口不是類 ,它只是一個定義類必須實現的公共成員的契約

抽象類只是一個無法創建實例的類。 通常,您將使用它來定義一個基類,該基類定義了要實現的派生類的一些方法。

而不是在這里寫整個事情..

試試http://www.codeproject.com/KB/cs/abstractsvsinterfaces.aspx

類可以實現多個接口,但只能從一個抽象類繼承。

抽象類可以為它的方法提供實現。 接口無法提供實現。

接口級別高於抽象級別。
當你設計strcuture時,繪制uml,你應該使用界面。
當你實現時,你應該使用abstract來提取重復的東西。

無論如何,不​​同的不僅是語法問題..
希望能幫助到你。

抽象類的目的是為一組派生類如何工作提供基類定義,然后允許程序員填充派生類中的實現。 當我們創建一個接口時,我們基本上創建了一組方法,沒有必須被實現的類覆蓋的任何實現。 它的優點是它為類提供了一種方法,使其成為兩個類的一部分:一個來自繼承層次結構,另一個來自接口。

谷歌“抽象類與界面”,你會得到很多解釋性文章......

類可以實現多個接口,但只能從一個抽象類繼承。

此外,抽象類可能定義了一些函數,但接口不具有任何函數定義,派生類必須定義所有函數定義。

我會通過用法解釋這一點。 當只有一個層次結構時,可以使用抽象類,另外沒有默認實現; 而界面可以跨層次結構(水平)使用,通常稱為行為。

接口也是一個抽象而在c#中替換多個類繼承,所以這可能會讓人困惑,但你必須要分清何時使用什么。

希望這有幫助,羅伯特

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM