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、显式接口成员执行体避免了接口成员之间因为同名而发生混淆。如果一个类希望对名称和返回类型相同的接口成员采用不同的实现方式,这就必须要使用到显式接口成员执行体。如果没有显式接口成员执行体,那么对于名称和返回类型不同的接口成员,类也无法进行实现。