为了账号安全,请及时绑定邮箱和手机立即绑定

接口的继承中的一个疑问

接口的继承中的一个疑问

江户川乱折腾 2018-08-23 12:09:16
1     interface IA 2     { 3         int Method(); 4     } 5     interface IB : IA 6     { 7         new double Method(); 8     } 9     class MyClass : IB10     {11         public double Method()12         {13             ...14         }15 16         int IA.Method()17         {18             ...19         }20     }我的问题是:在IB中我把IA的方法给隐藏了,为什么在MyClass中还要实现IA中的Method()。我试过了,如果不实现,会产生编译错误的。
查看完整描述

2 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

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

查看完整回答
反对 回复 2018-08-27
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

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


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


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


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


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


查看完整回答
反对 回复 2018-08-27
  • 2 回答
  • 0 关注
  • 532 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信