A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

黑马李伟斌

初级黑马

  • 黑马币:0

  • 帖子:8

  • 精华:0

© 黑马李伟斌 初级黑马   /  2012-12-1 22:22  /  966 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马