接口
接口不包含任何代码或数据;它只规定了从接口继承的类必须提供哪些方法和属性。使用接口,方法的名称/签名可以和方法的具体实现完全隔绝
接口的限制
1:不能在接口中定义任何字段,包括静态字段。字段本质上是类或结构的实现细节
2:不能在接口中定义任何构造器。构造器也是类或结构的实现细节
3:不能为任何方法指定访问修饰符。接口所有方法都隐式为公共方法
4:不能在接口中嵌套任何类型(例如枚举、结构、类或其他接口)
5:虽然一个接口能从另一个接口继承,但不允许从结构或类继承。结构和类含有具体实现;如果允许接口从它们继承,就会继承实现。
显示实现接口
class Horse : ILandBound,IJourney { int ILandBound.NumberOfLegs() { return 4; } int IJourney.NumberOfLegs() { return 3; } }
显式实现接口:
1、为方法名附加接口前缀
2、不能为方法指定访问修饰符
通过接口来引用类
接口变量能引用实现了该接口的类的对象
Horse myHorse = new Horse();
ILandBound iMyHorse = myHorse;