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

  • 相关阅读:
    C#字符串常见处理
    应用各种领域逻辑模式组织业务逻辑层
    谈谈C#的异常处理机制
    android适配器Adapter
    Struts+Tomcat搭建
    Android特性与系统架构
    常用控件应用之文本框(TextView)特效
    Activity中与ListActivity中使用listview区别
    Android四大基本组件介绍与生命周期
    ftp原理
  • 原文地址:https://www.cnblogs.com/pojia/p/287905.html
Copyright © 2011-2022 走看看