寫在前面:新手入行,讀者勉強看看吧,寫的不對的歡迎討論,板磚輕拍!
一.定義
接口描述的是可屬於任何類或結構的一組相關功能,所以實現接口的類或結構必須實現接口定義中指定的接口成員。
通常用Interface關鍵字進行定義。
接口內部只包含方法名,屬性等,不含任何訪問修飾符。
二.疑問
很多像筆者這樣的新手在看到接口的定義及作用后都會產生疑問:接口內部方法只有方法名我們何必去繼承這個接口呢?完全可以在應用方法的類里寫一個方法調用嘛,何必多此一舉呢?
每個繼承的類的方法內部代碼依然也是不一樣,繼承時如果不寫全繼承的方法還會報錯,還不如每個類自己寫個方法解決呢。
這個問題讓我整整找了一天的答案,如下是筆者見解。
三.代碼實例
做個和銀行存取款相關的實例,有這樣三個銀行:建行,工行,農行,有個公民同時有這三個銀行的賬號。
先建個接口IBank
public interface IBank { string Name { get; set; } int Count { get; set; } int InMoney(int money); int OutMoney(int money); }
然后分別建立三個銀行的類,繼承自IBank
class ICBCBank:IBank { private string name; public string Name { get { return name; } set { name = value; } } private int count; public int Count { get { return count; } set { count = value; } } public int InMoney(int money) { count += money; return count; } public int OutMoney(int money) { count -= money; return count; } }
其他兩個類似這個,就不寫了。內部包含Name和Count兩個屬性與InMoney,OutMoney兩個存取錢方法。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
IBank banker;
banker =
new
ICBCBank { Name =
"ICBCBank"
, Count = 100 };
DrawMoney(banker);
banker =
new
CCBBank { Name =
"CCBBank"
, Count = 200 };
DrawMoney(banker);
banker =
new
ABCBank { Name =
"ABCBank"
, Count = 300 };
DrawMoney(banker);
private
void
DrawMoney(IBank banker)
{
banker.OutMoney(10);
text01.Text+=banker.Name+
" "
+ banker.Count.ToString()+
"\n"
;
}
|
通過接口建立banker,該公民具有三個銀行的賬戶,每次只要將其轉換到某一銀行去之后,即可對其在該銀行內的賬戶進行取錢動作。
在下面DrawMoney動作中,傳入參數類型為IBook,可以傳入任何銀行的參數,大大方便的操作處理。
假如該公民再有其他銀行賬戶時,增加該銀行類,繼承IBank即可,改動很小。
四.實例下載