image

编辑人: 人逝花落空

calendar2025-05-09

message8

visits207

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

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

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:接口的多继承会带来哪些问题?

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share