zoukankan      html  css  js  c++  java
  • 接口的继承学习笔记[1]

       当一个接口被一个基类实现,此基类又被另外一个类继承;例如:
    interface ITest{
      void test();
    }
    class BClass:ITest{
    public  void test(){------}
    }
    class CClass:BClass{
    public new  void test(){------}
    }
    CClass的test()没有改变BClass.test()到借口ITest.test方法的映射:
    例如:
    BClass b=new BClass();
    CClass c=new CClass();
    ITest ib=b;
    ITest ic=c;
    //
    b.test(); //调用BClass().test();
    c.test(); //调用CClass().test();
    ib.test(); //调用BClass().test();///////为什么了!因为一个派生类不能改变从基类继承来的接口映射
    ic.test(); //调用BClass().test();

    但是当基类中的一个虚拟方法实现对借口的影射时,此积累又被另外一个类继承,并且此派生类有方法override基类方法,那么,通过派生类取得的接口实例将改变接口的映射,改变成从派生类映射接口;
    例如:
    interface ITest{
      void test();
    }
    class BClass:ITest{
    public virtual  void test(){------}
    }
    class CClass:BClass{
    public override  void test(){------}
    }
    派生类改变映射;
    BClass b=new BClass();
    CClass c=new CClass();
    ITest ib=b;
    ITest ic=c;
    //
    b.test(); //调用BClass().test();
    c.test(); //调用CClass().test();
    ib.test(); //调用BClass().test();
    ic.test(); //调用CClass().test();////为什么了!因为派生类方法CClasss.test()映射到接口

  • 相关阅读:
    【题解】魔术棋子
    NHOI2019小结
    【题解】滑雪
    【题解】最大平台
    【题解】洪水
    【题解】N皇后问题
    【题解】四色定理
    使用Docker快速搭建Jenkins
    使用Docker快速搭建Gitlab
    测试用Docker Swarm环境搭建
  • 原文地址:https://www.cnblogs.com/pojia/p/287905.html
Copyright © 2011-2022 走看看