接口
接口用于定义一组函数声明,任何继承了接口的类都要实现接口中的函数.
接口中只能定义方法、属性、索引器和事件声明,所有这些声明都为public(不需要指示,并且不能为private,protected等)
C#中的类只支持单继承,但通过继承接口,可以将类看成多种类型。在C#中实现接口可以有下面两种方法:
隐式接口实现:
隐式接口实现中的接口方法在对象生存期内是公开的,可以直接访问:
接口中只能定义方法、属性、索引器和事件声明,所有这些声明都为public(不需要指示,并且不能为private,protected等)
public interface IClass1
{
object this[int index] { get; set;}
string ClassName { get; set; }
void DoNothing();
event EventHandler OnOoxx;
}
{
object this[int index] { get; set;}
string ClassName { get; set; }
void DoNothing();
event EventHandler OnOoxx;
}
C#中的类只支持单继承,但通过继承接口,可以将类看成多种类型。在C#中实现接口可以有下面两种方法:
隐式接口实现:
public interface IComparable
{
Int32 CompareTo(object other);
}
public class Class1 : IComparable
{
// IComparable 接口成员实现
public Int32 CompareTo(object other) {
}
}
显示接口实现:{
Int32 CompareTo(object other);
}
public class Class1 : IComparable
{
// IComparable 接口成员实现
public Int32 CompareTo(object other) {

}
public class Class2 : IComparable
{
// IComparable 接口成员实现
Int32 IComparable.CompareTo(object other) {
}
}
{
// IComparable 接口成员实现
Int32 IComparable.CompareTo(object other) {

}
隐式接口实现中的接口方法在对象生存期内是公开的,可以直接访问:
Class1 c1 = new Class1();
c1.CompareTo(1);
而显示接口实现中的接口方法是IComparable接口的私有方法,不能通过对象直接访问:
c1.CompareTo(1);
Class2 c2 = new Class2();
((IComparable) c2).CompareTo(1);
((IComparable) c2).CompareTo(1);