隐式和显式接口的区别
隐式和显式接口的区别
(隐式的实现不再探讨,只剖析显式的接口实现。)
定义的接口如下:两个接口的方法名及参数都相同
interface ICustomA
{
Int32 CompareTo(string obj);
}
interface ICustomB
{
Int32 CompareTo(string obj);
}
类的实现方式如下:一个默认的(类本身的方法),两个显式实现的。
public class Number : ICustomA, ICustomB
{
// 默认方法
public int CompareTo(string obj)
{
return 0;
}
// 显式实现ICustomA
int ICustomA.CompareTo(string obj)
{
return 0;
}
// 显式实现ICustomB
int ICustomB.CompareTo(string obj)
{
return 0;
}
}
三个方法,对应方式的调用方式如下:
static void Main(string[] args)
{
Number p = new Number();
p.CompareTo(“默认”);
ICustomA pA = p as ICustomA;
pA.CompareTo(“显A”);
ICustomB pB = p as ICustomB;
pA.CompareTo(“显B”);
}