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()。我试过了,如果不实现,会产生编译错误的。
MyClass在语法上是应该可以转换为IA接口的,转换为IA接口的时候就可以调用IA的int Method()了,你不实现IA的方法,那就出错了。
返回类型必须匹配!
显示实现!
你都隐藏了,继承还有什么意义
int IA.Method() 你显式指定了Method的IA的
我想我是风说得对!
MyClass间接实现了IA,那么就会有这样的代码:
IA ia = new MyClass();
int n = ia.Method();
因此就必须要显式实现IA中的方法。
MyClass myClass = new MyClass();
double d = myClass.Method();
而直接调用MyClass的Method方法,得到的是double类型。