- ·上一篇内容:北京清元优软科技有限公司URP教务系统信息泄露漏洞
- ·下一篇内容:C#中的属性
消除C#中接口的二义性
在本站中的另外两篇文章里比较详细的介绍了接口的含义及定义和实现方法,本文中重点介绍由于接口的多继承而导致的二义性问题。
另外两篇文章的连接:
(1)C#中的接口
(2)C#中接口的使用方法
在C#中不支持多重继承的一个重要原因就是命名冲突问题,命名冲突会导致二义性。C#虽然不支持类的多重继承,但支持接口的多重继承,这同样会导致二义性的产生。下面的例子将演示二义性的产生的原因及消除二义性的一个办法:
using
System;
interface
Donkey
{
void
Run();
}
interface
Horse
{
void
Run();
}
class
Mule:Donkey,Horse
{
void
Donkey.Run()
{
Console.WriteLine("小驴劲儿真大阿");
}
void
Horse.Run()
{
Console.WriteLine("马奔跑能力真强!");
}
}
class
Test
{
static
void
Main()
{
Mule
m
=
new
Mule();
((Donkey)m).Run();
((Horse)m).Run();
}
}
运行结果如下:
微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。
个人成长离不开各位的关注,你的关注就是我继续前行的动力。