读书人

浅谈抽象类与接口的差别

发布时间: 2012-11-26 11:48:49 作者: rapoo

浅谈抽象类与接口的区别

最近发现在面试之中,时常有人会问到抽象类与接口的区别,于是便上网查阅了一些资料,在这里做一个总结,方便日后查阅。

抽象类和接口是在程序中经常会用到的,这里我详细讲解下它们的异同点。

抽象类:

定义

抽象类是一个特殊的类,是类的抽象概述,可以在它里面定义成员方法但却不必去实现,反 映的是事物的内部共性。

主要特点

1. 抽象类不能被实例化,必须通过子类来实现

2. 抽象类不能被密封

接口:

定义

接口是包含一组虚方法的抽象类型,它声明的方法没有任何实现,接口是为了满足外部调用而定义的一个功能约定,因此其反应的是事物外部特性

主要特点

1. 接口不能被实例化,须由派生类去实现其声明的方法

2. 接口可以多重实现,一个类可以继承多个接口

3. 可以用于回调

4. 接口中不能包含常量、字段(域)、构造函数、析构函数、静态成员

看下它们的异同点

相同

ü 两者都不能实例化

ü 两者都包含未实现的方法声明

ü 都必须通过继承来实现其定义的方法

不同点

ü 接口可以多重实现,而抽象类单继承

ü 派生类实现抽象类中未实现的方法,接口则是实现所有方法

ü 接口是定义一个行为的规范或规定,抽象类用于部分实现一个类

ü 部分接口只能定义属性、索引器、事件和方法声明,不能包含字段,而抽象类可以

ü 接口反应的是事物的外部特性,而抽象类反应的是事物的内容共性


读书人网 >编程

热点推荐