现在的位置: 首页 > 综合 > 正文

C#中类、抽象类、接口的比较

2014年03月23日 ⁄ 综合 ⁄ 共 569字 ⁄ 字号 评论关闭

接口和类

不同点:

            不能直接实例化接口;

            接口不包含方法的实现

            接口可以多继承,类只能单继承

            类定义可在不同的源文件之间进行拆分。

相同点:

           接口、类和结构都可以从多个接口继承

           接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员

           接口和类都可以包含事件、索引器、方法和属性。

 

抽象类与接口

相同点:

           都不能被直接实例化,都可以通过继承实现其抽象方法。

不同点:

           接口支持多继承;抽象类不能实现多继承

           接口只能定义行为;抽象类既可以定义行为,还可能提供实现

           接口可以用于支持回调(CallBack);抽象类不能实现回调,因为继承不支持

           接口只包含方法(Method)、属性(Property)、索引器(Index)、事件(Event)的签名,但不能定义字段和包含实现的方法;

抽象类可以定义字段、属性、包含有实现的方法;

           接口可以作用于值类型(Struct)和引用类型(Class);抽象类只能作用于引用类型。例如,Struct就可以继承接口,而不能继承类。

抱歉!评论已关闭.