对C# Interface的认识(2)

上接对C# Interface的认识(1)

7.不要把接口的方法和抽象函数(abstract)混淆,虽然它们的声明方式很相似,但是实现却不一样,你不能在实现函数前边加上override,如果你这样做了,你将会得到一个编译错误。

8.接口是可以组合的,比如:   public interface IList : ICollection, IEnumerable

9.你不能在同一个层次上继承同一个接口,比如:public interface IList : ICollection,ICollection,当然这样做也没有必要。但是你可以在不同的层次上继承同一个接口,这样做并不会的到编译器错误,但是,最后的接口实现将会覆盖掉上一层的接口实现。

10.你可以显式的实现接口,例如:

using System ;
interface ICloneable {
 object Clone( ) ;
}
interface IComparable {
 int CompareTo(object other) ;
}
class ListEntry: ICloneable, IComparable {
 object ICloneable.Clone( ) {…}
 int IComparable.CompareTo(object other) {…}
}

显式的接口实现主要有两个目的:1、因为显式接口成员执行体不能通过类的实例进行访问,这就可以从公有接口中把接口的实现部分单独分离开。如果一个类只在内部使用该接口,而类的使用者不会直接使用到该接口,这种显式接口成员执行体就可以起到作用。2、显式接口成员执行体避免了接口成员之间因为同名而发生混淆。如果一个类希望对名称和返回类型相同的接口成员采用不同的实现方式,这就必须要使用到显式接口成员执行体。如果没有显式接口成员执行体,那么对于名称和返回类型不同的接口成员,类也无法进行实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值