zoukankan      html  css  js  c++  java
  • 针对面向对象接口最诡异的解读 伍卓钧

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

  • 相关阅读:
    VB中Null、Empty、Nothing及vbNullString的区别
    hs_err_pidXXX.log 解读
    测试Windows Live Writer——开博
    BCPC2021预赛
    软件设计模式之策略模式(Strategy) 壹
    留言板 壹
    友链 壹
    正则表达式练习 壹
    SpringBoot+Mybatis+自定义注解+Atomikos+实现多源数据库切换和分布式事务
    Dependency failed for File System Check on /dev/vdb1 服务器配置升级
  • 原文地址:https://www.cnblogs.com/zhuojun/p/4044509.html
Copyright © 2011-2022 走看看