您的位置:首页 > 编程语言 > C#

C#中,接口的隐式实现和显示实现

2011-10-05 22:35 288 查看
在C#中,接口的实现分为:隐式实现和显式实现。如果类或者结构要实现的是单个接口,可以使用隐式实现,如果类或者结构继承了多个接口那么接口中相同名称成员就要显式实现。显示实现是通过使用接口的完全限定名来实现接口成员的。

比如:当一个类A要实现两个接口I1,I2时,而I1,I2中都一个Test();的方法,在实现时会存在二义性,这时就需要显示的实现接口,在调用时要明确调用者。

目前常用的方式:

隐示实现:

public interface IReview
{
void GetReviews();
}
public class ShopReview :IReview
{
public void GetReviews(){}
}

IReview rv = new ShopReview();

rv.GetReviews();

ShopReview rv = new ShopReview();

rv.GetReviews();


这是不管是接口变量 rv ,还是对象变量 rv ,都可以调用GetReviews这个方法。

还有一种方式是显示实现:

public interface IReview
{
void GetReviews();
}
public class ShopReview :IReview
{
void IReview.GetReviews(){} //注意:接口.方法名
}

//通过这种方式的接口实现。GetReviews就只能通过接口来调用:

IReview rv = new ShopReview();

rv.GetReviews();

//下面的这种方式将会编译错误:

ShopReview rv = new ShopReview();

rv.GetReviews();


结论:

隐示实现接口和类都可以访问
显示实现只有接口可以访问。
显示实现接口的优势:
1. 隐藏代码的实现
2. 在使用接口访问的系统中,调用者只能通过接口调用而不是底层的类来访问。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: