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