寫在前面:新手入行,讀者勉強看看吧,寫的不對的歡迎討論,板磚輕拍!
一.定義
接口描述的是可屬於任何類或結構的一組相關功能,所以實現接口的類或結構必須實現接口定義中指定的接口成員。
通常用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即可,改動很小。
四.實例下載

