网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
10月12日漏签0天
c#吧 关注:188,591贴子:823,390
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 6回复贴,共1页
<<返回c#吧
>0< 加载中...

请教一道题

  • 只看楼主
  • 收藏

  • 回复
  • 爱的勇气000
  • c#求知者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
已知接口 IHello 和类 Base、MyClass 的定义如下
interface IHello { void Hello(); }
class Base : IHello { public void Hello() {System.Console.WriteLine("Hello in Base!"); } }
class Derived : Base { public void Hello() { System.Console.WriteLine("Hello in Derived!");} }
IHello x = new Derived();x.Hello();
则下列语句在控制台中的输出结果为___A_。
A.Hello in Base!
B.Hello in Derived!
C.Hello in Base!Hello in Derived!
D.Hello in Derived!Hello in Base!
为什么是A? 不明白IHello x = new Derived(); 这里是什么情况
x.Hello();为什么是Baes里的方法


  • 爱的勇气000
  • c#求知者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
求教


2025-10-12 19:26:22
广告
不感兴趣
开通SVIP免广告
  • 狠有毅毅
  • c#大牛
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
接口是用来干嘛的?实现的吧
实现了接口就要重写接口声明的成员吧。。
重写了之后 父类的成员都被覆盖。。
这个时候 调用接口的方法,实际是重写过后的子类的方法
这也是多态的原理


  • End—天涯
  • c#探索者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
首先IHello是接口,Base实现了IHello接口。
Derived 又继承了Base。
现在创建一个对象

IHello x = new Derived();
要使用一个接口,那么首先必须实现这个接口,Base类实现了IHello接口,所以我们才能创建
IHello对象
IHello x = new Base ();
题目中
IHello x = new Derived(); 其实可以应该拆分成下边三句代码
IHello x = new Base();//只有实现了IHello接口的Base类才能创建IHello的实例。
x = new Derived();//这里实际上是将Base转换成了Derived。
x.Hello();//调用Derived类的Hello()方法。
因为Derived继承了Base类,所以在访问Derived的方法或者是属性时会优先会从它的父类中找关于此方法的限定,结果找到了Hello()方法。
然后现在再看Base类中的Hello方法,这个方法已经进行了全部实现而且并未用virtual或者abstract修饰,所以在执行的时候就没有再到Base的子类中找这个方法的实现。所以题目中最后输出了"Hello in Base!"
表达的不好,希望有大神可以解释的更科学


  • End—天涯
  • c#探索者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
有木有人来探讨下,寻求更深度的解释


  • End—天涯
  • c#探索者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
来个人啊,


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 6回复贴,共1页
<<返回c#吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示