CLR笔记:14.接口2011-10-26 博客园 包建强CLR以及所有托管语言都不支持多继承,通过接口模拟实现14.1 类和接口的实现接口定义:为一组方法签名指定一个名称的方式。类实现接口,就一定要提供接口所有方法的实现。即使抽象类,也要全部实现,但是,它可以把接口方法声明为abstract的,从而把这个接口方法留给 派生类去实现,如下:
public interface ITest { void Test(); } public abstract class AbstractClass : ITest { public abstract void Test(); } public class ConcreateClass : AbstractClass { public override void Test() { //Coding implementation; } }
14.2 定义接口接口中可以有方法/事件/属性,因为后者本质上也是 方法接口中不可以有静态成员(包括常量/枚举)接口之间可以"继承",可以认为是包含另一种接口的约定,并不是真正意义的继承接口下所有成员,默认为public,不用声明14.3 实现接口实现的接口方法,一定要标记为public,此时在IL中为virtual和sealed,即不允许子类重写该方法( 这时new也不管用了)。要显示将调用的接口方法标记为virtual,则可以在子类中重写该方法//如果显示标记为sealed,那么就更不可以重写了