CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

学习C#遇到的接口的继承机制的问题

楼主lgq1314()2005-08-04 10:57:26 在 .NET技术 / C# 提问

学习C#遇到的接口的继承机制的问题  
  如果不显式的重现实现接口,派生类就无法改变从基类中继承的接口映射  
      interface   IControl  
          {  
                  void   Paint();  
   
          }  
   
            calss   Control   :   IControl  
          {  
                  public   void   Paint(){.....}  
          }  
   
          class   TextBox   :   Control  
          {  
          new   publict   void   Paint(){.....}  
          }  
   
  Control   c=new   Control();  
  TextBox   t=new   TextBox();  
  IControl   ic=c;  
  IControl   it=t;  
  c.Paint();             //invokes   Control.Paint()  
  t.Paint();             //invokes   TextBox.Paint()  
  ic.Paint();           //invokes   Control.Paint()  
  it.Paint();           //invokes   Control.Paint()  
  在这个程序中,类TextBox   的方法掩盖了   Control的方法,但是没有改变Control.Paint对IControl.Paint的映射   为什么会出现这样调动结果?  
   
  我的问题如下:  
  1:Control   c=new   Control();TextBox   t=new   TextBox();   是两个实例化的类对象IControl   ic=c;IControl   it=t;   这两个语句什么意思?ic、it  
  是两个接口类型的对象   为什么可以可以被赋值类对象?  
  2:既然类TextBox   的方法掩盖了   Control的方法   那么执行it.Paint()   为什么还会调动   //invokes   Control.Paint()   我认为应该是://invokes   TextBox.Paint()?  
   
  问题点数:10、回复次数:2Top

1 楼lgq1314()回复于 2005-08-04 12:19:01 得分 0

等待中................    
  谢谢Top

2 楼lgq1314()回复于 2005-08-04 12:26:30 得分 0

1:基类指针可以指向派生类.   反过来则不行!  
  比如:有雇员接口.   经理类和普通职员类都继承雇员接口.  
  任何经理和普通职员都是公司的雇员.   反过来则不行.  
  2:TextBox类继承了Control类,覆盖了Control类的paint()方法.  
  这只是当调用TextBox类的paint()方法时,首先执行程序会从父类找,因为Control类的paint()方法被覆盖了,所以找不到.因为没有从父类获得相关的方法,程序会继续向下找.  
  直到找到方法.  
  如果直接调用接口对象,因为接口里只是声明方法,并没有逻辑实现.所以继续向该类的子类找,在Control类能找到该方法.  
  Top

相关问题

  • C#继承机制的疑惑
  • 继承和接口
  • 在JAVA中如何用接口实现C++的多重继承呀?帮帮忙!
  • 接口还是继承?
  • 请问C#里面继承类同时又实现接口的写法是怎样?
  • 小弟初学c# 问一个关于接口继承的问题请那位大虾解决以下
  • 小弟初学c# 问一个关于接口继承的问题请那位大虾解决以下
  • [求助]可以在vc.net中引用c#编写的dll并继承里面的类或接口吗?
  • [求助]可以在vc.net中引用c#编写的dll并继承里面的类或接口吗?
  • 如果一个类C继承抽象类A同时实现接口B,而抽象类A有非抽象方法out,接口B有抽象方法out...

关键词

  • c#
  • 接口
  • ic
  • paint
  • 类
  • 继承
  • icontrol
  • 方法
  • textbox
  • control

得分解答快速导航

  • 帖主:lgq1314

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo