Welcome

首页 / 软件开发 / .NET编程技术 / CLR笔记:14.接口

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,那么就更不可以重写了