接口作用?
1.接口最基本的作用就是作為一個客觀的規范 是一類事物所具有的屬性的總結 相當于父類
舉例說明下 人 有身高這個屬性 有吃飯這個方法 有痛了就喊"媽呀"這個事件
OK 這樣就可以把這些屬性,方法,事件總結起來定義一個接口 叫"人類"
(這里的LogHandler OnLog就是一個事件 下面會具體講到)
2.接口還有一個最基本的作用(也是父類所沒有的)——多態
估名思義 人具有多種"態" 比如某個人卻實具有了人類的所有屬性 但是很特別 這個人還具備一般人不具有但卻是動物獨有的一種行為——"吃人"(這里且不把人看做動物) 那么這個人也實現了另一個接口 叫"動物類"
具體實在代碼:
public class riBenRen : IPeople, IAnimal
{
private float height = 5.0;
public event BeiKan onBeiKan;
public string Eat(string food){
//消化過程
return "屎";
}
public string EatPeople(IPeople people){
//消化過程
return "屎";
}
}
3.以上兩種作用只是形式上的 它還有另一個作用就是"子類的實例調用父類的引用" (貌似是這么說的)
舉例說明
我不知道某人叫什么 我只知道他屬于人類 那么我一定知道他有吃飯的行為 我就可以扔給他一個骨頭
具體代碼
IPeople chenLaoShi = new ChenGuanXi();
chenLaoShi .Eat("骨頭");
4.至于那個事件
LogHandler是一個委托 為什么叫委托 就是把某件事委托給系統 當什么什么情況就讓它觸發什么什么事件
具體代碼
/*這個是我*/
public class ChaoRen :IPeople
{
public delegate void OnKanRen();
public event OnKanRen kanRen;
//點一個按鈕讓某人被砍
priate void Button1Click(object sender,EventArgs e){
kanRen();//調用了
}
}
/*被砍那個人的類*/
public class ChenGuanXi : IPeople, IAnimal
{
private class ChaoRen cr;//這個是我
public ChenShuiBian(){
//給陳老師安個定時被砍器 只要我一砍人陳老師就會被砍
cr.kanRen += new EventHander(BeiKan);
}
private void BeiKan(){
//被砍了
}
}