C#籠統類和接口的差別剖析。本站提示廣大學習愛好者:(C#籠統類和接口的差別剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是C#籠統類和接口的差別剖析正文
許多C#的初學者在編程時都輕易把籠統類和接口弄混,本文就為年夜家從概念上講授籠統類和接口的差別:
1、籠統類:
含有abstract潤飾符的class即為籠統類,籠統類是特別的類,只是不克不及被實例化,可以創立一個變量,其類型是一個籠統類,並讓它指向詳細子類的一個實例;除此之外,具有類的其他特征;主要的是籠統類可以包含籠統辦法,這是通俗類所不克不及的。籠統辦法只能聲明於籠統類中,且不包括任何完成,派生類必需籠罩它們。別的,籠統類可以派生自一個籠統類,可以籠罩基類的籠統辦法也能夠不籠罩。
2、接口:
接口是援用類型的,相似於類,和籠統類的類似的地方有三點:
1、不克不及實例化;
2、包括未完成的辦法聲明;
3、派生類必需完成未完成的辦法,籠統類是籠統辦法,接口則是一切成員(不只是辦法包含其他成員);
接口有以下特征:
接口除可以包括辦法以外,還可以包括屬性、索引器、事宜,並且這些成員都被界說為私有的。除此以外,不克不及包括任何其他的成員,例如:常量、域、結構函數、析構函數、靜態成員。一個類可以直接繼續多個接口,但只能直接繼續一個類(包含籠統類)。
二者的語法差別:
1.籠統類可以有結構辦法,接口中不克不及有結構辦法。
2.籠統類中可以有通俗成員變量,接口中沒有通俗成員變量
3.籠統類中可以包括非籠統的通俗辦法,接口中的一切辦法必需都是籠統的,不克不及有非籠統的通俗辦法。
4. 籠統類中的籠統辦法的拜訪類型可所以public,protected,但接口中的籠統辦法只能是public類型的,而且默許即為public abstract類型。
5. 籠統類中可以包括靜態辦法,接口中不克不及包括靜態辦法
6. 籠統類和接口中都可以包括靜態成員變量,籠統類中的靜態成員變量的拜訪類型可以隨意率性,但接口中界說的變量只能是public static final類型,而且默許即為public static final類型。
7. 一個類可以完成多個接口,但只能繼續一個籠統類。
8.接口可以用於支撐回調,而繼續其實不具有這個特色. 9.籠統類完成的詳細辦法默許為虛的,但完成接口的類中的接口辦法卻默許為非虛的,固然您也能夠聲明為虛的.
籠統類和接口的應用:
1.假如估計要創立組件的多個版本,則創立籠統類。籠統類供給簡略的辦法來掌握組件版本。
2.假如創立的功效將在年夜規模的全異對象間應用,則應用接口。假如要設計小而簡潔的功效塊,則應用接口。
3.假如要設計年夜的功效單位,則應用籠統類.假如要在組件的一切完成間供給通用的已完成功效,則應用籠統類。
4.籠統類重要用於關系親密的對象;而接口合適為不相干的類供給通用功效。
5.好的接口界說應當是具有專注功效性的,而不是多功效的,不然形成接口淨化。假如一個類只是完成了這個接口的中一個功效,而不能不去完成接口中的其他辦法,就叫接口淨化。
願望本文所述對年夜家的C#法式設計有所贊助。