[英]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.