c#接口显示实现和隐示实现
//定义接口IA
//可加的修饰符有internal和public
public interface IA
{
//方法不能加修饰符,默认public
void Method();
}
//定义接口IB并实现IA
public interface IB : IA
{
//这里的方法是重写IA里面的方法,也可以不写。
//接口实现接口时可不用实现其方法。
new void Method();
}
1.显示实现接口IB
public class IClass : IB
{
//从接口显示实现的函数不能加修饰符
void IA.Method()
{
Console.WriteLine("This Method in IA!");
}
void IB.Method()
{
Console.WriteLine("This Method in IB!");
}
}
显示实现接口的调用必须使用接口来接收调用
static void Main(string[] args)
{
IA a = new IClass();
a.Method();
IB b = new IClass();
b.Method();
Console.Read();
}
2.隐示实现接口IB
public class IClass : IB
{
//必须加修饰符且只能是public
public void Method()
{
Console.WriteLine("隐式实现接口");
}
}
隐示实现接口的调用即可使用接口也可使用类来接收调用
static void Main(string[] args)
{
IA a = new IClass();
a.Method();
IB b = new IClass();
b.Method();
IClass c = new IClass();
c.Method();
Console.Read();
}
总结:
1.当类实现一个接口时,通常使用隐式接口实现,这样可以方便的访问接口方法和类自身具有的方法和属性。
2.当类实现多个接口时,并且接口中包含相同的方法签名,此时使用显式接口实现。即使没有相同的方法签名,仍推荐使用显式接口,因为可以标识出哪个方法属于哪个接口。
3.隐式接口实现,类和接口都可访问接口中方法。显式接口实现,只能通过接口访问。
4.隐式接口实现函数必须加修饰符且只能是public,显示接口实现函数不能加修饰符。

浙公网安备 33010602011771号