首页 > 代码库 > 针对面向对象接口--最诡异的解读

针对面向对象接口--最诡异的解读

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(){
 //被砍了
   }
}

针对面向对象接口--最诡异的解读