首页 > 代码库 > 针对面向对象接口--最诡异的解读
针对面向对象接口--最诡异的解读
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(){
//被砍了
}
}
针对面向对象接口--最诡异的解读