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

  • 相关阅读:
    API测试之Postman使用完全指南(Postman教程,这篇文章就够了)
    asp.net的webservice
    表和索引的结构(笔记)
    基于Nginx+PHP+Redis的短URL系统的实现 新风宇宙
    数据结构与算法(php版) 新风宇宙
    discuz7.2 昵称替换用户名 新风宇宙
    gVim7.3(Vim7.3)文本编辑器详细配置文件和配色方案 新风宇宙
    Discuz的Memcache缓存实现 新风宇宙
    GitHub使用(二) 从代码库下载代码到本地 新风宇宙
    PHPredis中文文档 新风宇宙
  • 原文地址:https://www.cnblogs.com/zhuojun/p/4044509.html
Copyright © 2011-2022 走看看