黑马程序员技术交流社区

标题: 接口和抽象类的异同 [打印本页]

作者: 黑马李伟斌    时间: 2012-12-1 22:22
标题: 接口和抽象类的异同
类似之处:  
·                    抽象类和接口都包含可以有派生类继承的成员.
·                    接口和抽象类都不能直接实例化, 但可以声明他们的变量.
·                    可以使用多态性把继承于这两种类型的对象指定给他们的变量, 通过这些变量来使用这些类型的成员. 不能直接访问派生类对象的其他成员.
     区别:
·                    派生类只能继承一个基类, 即只能直接继承一个抽象类(但可以使用一个继承链包含多个抽象类).   相反, 类可以使用任意多个接口.
·                    抽象类可以拥有抽象成员(没有代码体, 必须在派生类中实现, 否则派生类本身必须也是抽象的), 和非抽象成员(他们拥有代码体, 也可以是虚拟的, 这样就可以在派生类中重写).
·                    接口成员必须都在使用接口的类上实现----他们没有代码体, 另外, 按照定义, 接口成员是公共的, 但抽象的成员可以是私有的(只要他们不是抽象的), 受保护的, 内部的或受保护的内部成员(其中受保护的内部成员只能在应用程序的代码或派生类中访问).
·                    接口不能包含字段, 构造函数, 析构函数, 静态成员或常量.
     这说明这两种类型用于完全不同的目的.
抽象类主要用作对象系列的基类, 共享某些主要特性, 例如共同的目的和结构.
接口则主要用于类, 这些类在基础水平上有所不同, 但仍可以完成某些相同的任务.

作者: 许庭洲    时间: 2012-12-1 22:42
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2