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()映射到接口

  • 相关阅读:
    十四行诗 Sonnet 15
    P3386 【模板】二分图匹配
    20171105模拟题
    需要注意的各种各种 持续更新
    P1315 观光公交 贪心
    【搬家辣】
    【洛谷P2387】魔法森林
    【洛谷P3369】普通平衡树(splay)
    【算法详解】splay的初步了解
    研究性学习代码
  • 原文地址:https://www.cnblogs.com/pojia/p/287905.html
Copyright © 2011-2022 走看看