C#考试用!急~混分别来~留下详细过程!

[复制链接]
查看11 | 回复3 | 2011-5-16 06:11:12 | 显示全部楼层 |阅读模式
54. 已知接口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. Hello in Base!
B. Hello in Derived!
C. Hello in Base!Hello in Derived!
D. Hello in Derived!Hello in Base!..

回复

使用道具 举报

千问 | 2011-5-16 06:11:12 | 显示全部楼层
A. Hello in Base!c和d可以排除,如果要输出两行,至少要调用base.Hello();x的类型是IHello,不是Derived,所以不会调用Derived的方法,只会调用base的方法
回复

使用道具 举报

千问 | 2011-5-16 06:11:12 | 显示全部楼层
Hello in Derived!父类函数重写,不会再调用父类里面的函数了。
回复

使用道具 举报

千问 | 2011-5-16 06:11:12 | 显示全部楼层
B. Hello in Derived!类Derived重载了 Base 的接口函数Hello ,当调用接口函数时,当然调用的是重载的函数。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行