标题:abstract class与interface的区别
只看楼主
zb670984722
Rank: 2
来 自:北京海淀
等 级:论坛游民
威 望:1
帖 子:59
专家分:37
注 册:2013-4-11
结帖率:93.33%
已结贴  问题点数:20 回复次数:7 
abstract class与interface的区别
面试题
搜索更多相关主题的帖子: abstract interface 面试 
2013-06-03 20:33
xioun
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:68
专家分:309
注 册:2013-4-8
得分:10 
对比分析嘛:
           1、概念对比
           2、语法对比;
           3、设计理念层对比;

命若天定,我就破了这个天!
2013-06-04 09:15
a1632248672
Rank: 2
来 自:烟台
等 级:论坛游民
帖 子:19
专家分:48
注 册:2013-5-2
得分:10 
抽象类是从多个类中抽象出来的公共模板,提供子类均有的功能。接口是从多个类中抽取出来的规范,体现的是规范和实现分离的原则,同时也有效的解决了JAVA单重继承的缺陷。
2013-06-04 15:36
素年0427
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-6-11
得分:0 
所有的接口默认的事抽象的 即使是没有abstract 修饰。   且没有构造方法。 所有的成员变量必须是public  static final.
成员方法必须是public abstract.

一个抽象类中可以有非抽象成员方法,抽象成员方法必须在抽象类中。
2013-06-11 22:46
chenpengfei1
Rank: 2
等 级:论坛游民
威 望:1
帖 子:15
专家分:64
注 册:2013-3-30
得分:0 
两个基本上都一样,都是实现在了抽象层次,即我只给出你一个定义,至于具体的实现就交给你了
我觉得楼上这话说的精辟
*******************************************************************************************************************
抽象类是从多个类中抽象出来的公共模板,提供子类均有的功能。接口是从多个类中抽取出来的规范,体现的是规范和实现分离的原则,同时也有效的解决了JAVA单重继承的缺陷。
********************************************************************************************************************

[ 本帖最后由 chenpengfei1 于 2013-6-12 21:46 编辑 ]
2013-06-12 21:42
windergao
Rank: 2
等 级:论坛游民
威 望:1
帖 子:15
专家分:57
注 册:2013-6-13
得分:0 
3楼一句话,让我顿悟啊
*******************************************************************************************************************
抽象类是从多个类中抽象出来的公共模板,提供子类均有的功能。接口是从多个类中抽取出来的规范,体现的是规范和实现分离的原则,同时也有效的解决了JAVA单重继承的缺陷。
********************************************************************************************************************
2013-06-13 00:22
ddtet
Rank: 4
等 级:业余侠客
帖 子:32
专家分:211
注 册:2013-5-4
得分:0 
抽象类和接口都是为了达到多型(Polymorphism)这个设计模式所使用的手段。
两者皆不能直接的被使用“实例化”。

当设计中的子类皆具有相同函数(function),可以采用抽象类的方式,使得子类得以继承来节省代码数,也能达到修改父类就能同时影响子类的特性。
之所以采用抽象类,即表示子类都必须要具有同名,但不同实作的方法(method),以抽象类的特性来强迫子类必须自行实作,这是和一般父类使用时机上的区别。

若是子类都必须继承于其它父类,但又必须具有特定方法(method),会采用接口的方式来进行。或是在发展之中,使用接口来加快建构的速度,因为不用替每个函数写代码,可以先专注在某一个类的实作,也能因此通过编译检查。

两者皆是为了多形而使用到的技巧,接口只定义必要的方法,而不管这个方法是由自行实作或是继承而来。因此既使使用了接口,仍然可以经由继承其它类来达到和抽象类相同的效果。

至于单继承,个人不觉得是一种“缺陷”,而是为了避免多继承可能乱象所必须付出的代价。所以在 Java 里会使用聚合的方式(将其它类的实例作为属性,代为呼叫)来达到相同的目的。
2013-06-13 07:33
晚风依依123
Rank: 1
等 级:新手上路
帖 子:3
专家分:1
注 册:2013-6-13
得分:0 
1,abstract类是抽象类,可以定义抽象方法,在通过创建不同的子类具体实现抽象方法的功能,从而实现函数的多态,
2,因为Java中不能实现多继承机制,接口可以,所以接口的作用的变相的实现Java类的多继承
2013-06-13 17:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-414454-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.540551 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved