首页 新闻 会员 周边 捐助

接口的继承中的一个疑问

0
悬赏园豆:20 [已解决问题] 解决于 2011-03-24 11:12
1 interface IA
2 {
3 int Method();
4 }
5 interface IB : IA
6 {
7 new double Method();
8 }
9 class MyClass : IB
10 {
11 public double Method()
12 {
13 ...
14 }
15
16 int IA.Method()
17 {
18 ...
19 }
20 }
我的问题是:在IB中我把IA的方法给隐藏了,
为什么在MyClass中还要实现IA中的Method()
。我试过了,如果不实现,会产生编译错误的。
问题补充: 我的问题是:在IB中我把IA的方法给隐藏了, 为什么在MyClass中还要实现IA中的Method() 。我试过了,如果不实现,会产生编译错误的。
南京工程的主页 南京工程 | 初学一级 | 园豆:160
提问于:2011-03-20 20:50
< >
分享
最佳答案
0

MyClass在语法上是应该可以转换为IA接口的,转换为IA接口的时候就可以调用IA的int Method()了,你不实现IA的方法,那就出错了。

收获园豆:10
我想我是风 | 初学一级 |园豆:4 | 2011-03-21 08:49
其他回答(5)
0

返回类型必须匹配!

Chenkun | 园豆:806 (小虾三级) | 2011-03-20 21:09
0

显示实现!

ELex | 园豆:205 (菜鸟二级) | 2011-03-20 21:40
0

你都隐藏了,继承还有什么意义

麻将我会 | 园豆:24 (初学一级) | 2011-03-21 07:20
0

int IA.Method() 你显式指定了Method的IA的

码尔代夫iimax | 园豆:3138 (老鸟四级) | 2011-03-21 10:13
0

我想我是风说得对!

MyClass间接实现了IA,那么就会有这样的代码:

IA ia = new MyClass();
int n = ia.Method();

因此就必须要显式实现IA中的方法。

MyClass myClass = new MyClass();
double d = myClass.Method();

而直接调用MyClass的Method方法,得到的是double类型。

收获园豆:10
麒麟.NET | 园豆:3614 (老鸟四级) | 2011-03-21 16:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册