首页 新闻 会员 周边 捐助

JAVA中 什么时候用抽象类,什么时候用接口;

0
[待解决问题]

JAVA中 什么时候用抽象类,什么时候用接口;

吾名璇玑的主页 吾名璇玑 | 初学一级 | 园豆:196
提问于:2016-12-11 16:27
< >
分享
所有回答(6)
1

抽象类和接口的使用就是is和has的区别。如果就是某种玩意,比如人相对于男人,小孩,女人就是is,那么就应该是抽象类,因为他们都是人,有人所有的特点。而可行动相对于人,汽车,飞机就是has,那么就是接口,因为他们有这样的功能,但不具有is的特征。

 

Daniel Cai | 园豆:10424 (专家六级) | 2016-12-11 17:48
2

该用接口的时候用接口.该用抽象类的时候用抽象类.

至于什么时候该,当你有一个问题.并且开始动手写解决方案时自然会明白.

因为该用接口的时候你没法用抽象类.该用抽象类的时候你没法用接口.

 

吴瑞祥 | 园豆:29449 (高人七级) | 2016-12-11 19:01

刚接触软件,不懂当然要问啦~~~

支持(0) 反对(0) 吾名璇玑 | 园豆:196 (初学一级) | 2016-12-13 22:44

@吾名璇玑: 不好意思之前心情不好.我把最后一句删了吧.

学习还是要多动手不要光想.想出来的知识记不住的

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2016-12-13 23:06

@吴瑞祥: 没关系啦~~~

支持(0) 反对(0) 吾名璇玑 | 园豆:196 (初学一级) | 2016-12-13 23:07
0

接口表示对象具有某种特性,是对对象特性的定义(has)。抽象类表示对某类对象行为的抽象(is)。另外JAVA支持多接口实现但是只支持单继承,项目中使用多了就慢慢有感觉了。

DoToday | 园豆:202 (菜鸟二级) | 2016-12-11 21:21
0

我觉得Aaron_li举的例子就不错.

is-a has-a

is-a( 是 "a"  小明是人类)表示的是属于得关系。比如兔子属于一种动物(继承关系)。

has-a( 有 "a"  汽车有轮胎) 表示组合,包含关系。比如兔子包含有腿,头等组件;就不能说兔子腿是属于一种兔子(不能说是继承关系)

晓菜鸟 | 园豆:2594 (老鸟四级) | 2016-12-12 10:02
0

抽象类是is-a的关系,接口是has-a;接口一般都是添加额外的功能。

一个大人(两个小人) | 园豆:158 (初学一级) | 2016-12-13 11:46
0

抽象类与接口最大的区别在于抽象类的属性是可以继承的。

而接口只有常量。

一般情况下我们尽可能使用接口,因为接口从方法上去描述对象特性,可以实现多个接口,而继承只能继承一个。

那么我们什么时候要调用到抽象类呢?

那是因为子类必须含有父类的某个特征属性。

比如人跟鱼,人跟鱼都需要呼吸氧气作为生存的需要,这个呼吸是一个方法,所以就需要接口了。

当你需要区分人在空气中用肺呼吸,鱼在水中用鳃呼吸,那就要用到抽象类了。

 

酒皇 | 园豆:202 (菜鸟二级) | 2016-12-29 15:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册