|
1. 引言
在我之前的一篇post 《抽象類和接口的誰是誰非 》中,和同事管偉的討論,得到很多朋友的關(guān)注,因?yàn)槭遣怀审w系的論道,所以給大家了解造成不便,同時(shí)關(guān)于這個(gè)主題的系統(tǒng)性理論,我認(rèn)為也有必要做以總結(jié),因此才有了本篇的新鮮出爐。同時(shí),我將把上貼中的問題順便也在此做以交代。
2. 概念引入
- 什么是接口?
接口是包含一組虛方法的抽象類型,其中每一種方法都有其名稱、參數(shù)和返回值。接口方法不能包含任何實(shí)現(xiàn),CLR 允許接口可以包含事件、屬性、索引器、靜態(tài)方法、靜態(tài)字段、靜態(tài)構(gòu)造函數(shù)以及常數(shù)。但是注意:C# 中不能包含任何靜態(tài)成員。一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,當(dāng)一個(gè)類繼承某個(gè)接口時(shí),它不僅要實(shí)現(xiàn)該接口定義的所有方法,還要實(shí)現(xiàn)該接口從其他接口中繼承的所有方法。
定義方法為:
1. public interface System.IComparable
2. {
3. int CompareTo(object o);
4. }
5.
6. public class TestCls: IComparable
7. {
8. public TestCls()
9. {
10. }
11.
12. private int _value;
13. public int Value
14. {
15. get { return _value; }
16. set { _value = value; }
17. }
18.
19. public int CompareTo(object o)
20. {
21.
22. //使用as模式進(jìn)行轉(zhuǎn)型判斷
23. TestCls aCls = o as TestCls;
24. if (aCls != null)
25. {
26.
27. //實(shí)現(xiàn)抽象方法
28. return _value.CompareTo(aCls._value);
29. }
30. }
31. }
NET技術(shù):對(duì)抽象編程:接口和抽象類,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。