C#中類與接口的差別小我總結。本站提示廣大學習愛好者:(C#中類與接口的差別小我總結)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中類與接口的差別小我總結正文
一.類與接口的差別
類:描寫了一個實體,包含實體的狀況,也包含實體能夠收回的舉措。
接口:界說了一個實體能夠收回的舉措。然則只是界說了這些舉措的原型,沒有完成,也沒有任何狀況信息。
1.接口與類差別:
(1)接口有點象一個標准、一個協定,是一個籠統的概念;
(2)而類則是完成了這個協定,知足了這個標准的詳細實體,是一個詳細的概念。
(3)從法式角度,簡略懂得,接口就是函數聲明,類就是函數完成。須要留意的是統一個聲明能夠有許多種完成。
2.接口與籠統類的差別:
(1)A class can implement any number of interfaces but can subclass at most one abstract class.
(2)An abstract class can have nonabstract methods, which are usually instance of the TEMPLATE METHOD pattern. All the methods of an interface are abstract,
whether or not this declaration is explicit.
(3)An abstract class can declare instance variable that its subclass inherit. An interface cannot declare instance variables, although it can establish static final fields.
(4)An abstract class can define constructors, an interface cannot.
(5)An abstract class can have methods whose visibility is protected, private, or none(package);every method in an interface must be public.
(6)An abstract class inherits form Object, including such method as clone() and equals().
二. 接口的用途重要表現鄙人面幾個方面:
(1)經由過程接口可以完成不相干類的雷同行動,而不須要懂得對象所對應的類。
(2)經由過程接口可以指明多個類須要完成的辦法。
(3)經由過程接口可以懂得對象的交互界面,而不需懂得對象所對應的類。
三.一些接口的疑問:
1、從書中看到的是java法式的接口中只界說了常量及空辦法,空的辦法有甚麼用呢,還要在類中寫辦法體,那還要接口干甚麼。
答:接口中界說類辦法的原型,然則不克不及說是空辦法,由於空辦法的意思是有完成體,只不外完成體是空操作。現實上接口沒有界說任何完成體。詳細的完成體都是在完成接口的類中,接口只是界說了這些辦法的挪用方法。
你固然也能夠不消接口,直接在類外面寫辦法,然則假如你的一組辦法須要在許多類裡完成,那末把它們籠統出來,做成一個接口標准,不是更好麼?
2、一個法式中寫了2個接口,並在統一個類中寫辦法體,這與多繼續有甚麼關系。
答:一個類描寫了一個實體,這個實體能夠是一個龐雜的對象,它的舉措許多,假如把這些舉措分類,用接口a界說個中的某一組舉措,接口b界說個中的別的一組舉措,如許的構造,比擬清晰。
這類方法具有了多繼續的長處,防止了多繼續的缺點。現實上在汗青上,接口在很年夜水平上,是為懂得決多繼續帶來的各種成績而設計出來的。
3、包中那些已界說的接口,怎樣曉得那邊面界說了甚麼辦法。
答:接口裡界說了辦法的輸出輸入,這些都是協定,詳細的完成都在每一個類中。關於許多只須要籠統接口的處所,不須要曉得詳細的類是甚麼,只需這個類完成了這個接口便可以了。