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

C#

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

同类其他面试题 点击新一篇或旧一篇可浏览全部同类面试题

新一篇:
旧一篇:

你有答案? 你对以上面试题有意见? 你想发表你的见解? 写下来吧!你的分享将会让很多人受益!

相关面试题

·C#关于String的面试题
·C#程序设计笔试题
·C#方向高级开发人员面试时应该事先考虑的问题
·C#面试题(语法,附答案)
·C#面试题

版权声明:本站大部分内容为原创! 另有少部分内容整理于网络,如需转载本站内容或关切版权事宜请联系站长。未经允许,严禁复制转载本站内容,否则将追究法律责任。 本站欢迎与同类网站建立友情链接,请联系QQ:176687814