您的位置:首页 > 电脑网络 > 笔记本 > Java中Abstract class与interface的差别

Java中Abstract class与interface的差别

luyued 发布于 2011-04-20 15:43   浏览 N 次  

对于语法差别,很多文章都写了,就不再赘述了,这儿主要讲本质的差异
抽象类定义了其子类的核心特征和功能(is a),例如继承Thread通常表明该类“is a”线程
而接口只是定义了类的附加能力(-able/can-do),例如Runable表示可以单独运行的任务,但是并不是说该类is a线程;Comparable表示类具有比较的功能,但是并不是说该类"is a"比较器

如果需要为子类添加或修改默认的行为,此时应该选择抽象类,而不是接口
如果需要为不相干的类提供公共的功能,应该使用接口;如果建立的模型在层次上很接近,应该选用抽象类
Interfaces vs Abstract Classesfeatureinterfaceabstract classmultiple inheritanceA class may implement several interfaces.A class may extend only one abstract class.default implementationAn in

广告赞助商