永发信息网

接口的多继承会带来哪些问题?

答案:2  悬赏:10  手机版
解决时间 2021-03-15 21:50
  • 提问者网友:留有余香
  • 2021-03-15 00:06
接口的多继承会带来哪些问题?
最佳答案
  • 五星知识达人网友:神也偏爱
  • 2021-03-15 01:25
答:C#中的接口与类不同,可以使用多继承,即一个子接口可以有多个父接口。但如果两个父成员具有同名的成员,就产生了二义性(这也正是C#中类取消了多继承的原因之一),这时在实现时最好使用显式的声明示例:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceExample17{classProgram{//一个完整的接口声明示例interfaceIExample{//属性stringP{get;set;}//方法stringF(intValue);//事件eventEventHandler E;//索引指示器stringthis[intIndex]{get;set;}}interfaceIA{intCount { get; set;}}interfaceIB{intCount();}//IC接口从IA和IB多重继承interfaceIC : IA, IB{}classC : IC{privateintcount = 100;//显式声明实现IA接口中的Count属性intIA.Count{get {return100; }
全部回答
  • 1楼网友:轮獄道
  • 2021-03-15 02:19
c# 中的接口与类不同,可以使用多继承,即一个子接口可以有多个父接口。但如果两个父成员具有同名的成员,就产生了二义性(这也正是 c# 中类取消了多继承的原因之一),这时在实现时最好使用显式的声明 示例: using system; using system.collections.generic; using system.text; namespace example17 { class program { //一个完整的接口声明示例 interface iexample { //属性 string p { get; set; } //方法 string f(int value); //事件 event eventhandler e; //索引指示器 string this[int index] { get; set; } } interface ia { int count { get; set;} } interface ib { int count(); } //ic接口从ia和ib多重继承 interface ic : ia, ib { } class c : ic { private int count = 100; //显式声明实现ia接口中的count属性 int ia.count { get { return 100; } set { count = value; } } //显式声明实现ib接口中的count方法 int ib.count() { return count * count; } } static void main(string[] args) { c tmpobj = new c(); //调用时也要显式转换 console.writeline("count property: {0}", ((ia)tmpobj).count); console.writeline("count function: {0}", ((ib)tmpobj).count()); console.readline(); } } } 结果: count property: 100 count function: 10000
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯