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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© winkyqin 中级黑马   /  2014-10-28 10:46  /  1449 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

回过头去看抽象类和接口的笔记。
想问下什么情况下应该使用抽象类,而什么时候使用接口。

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

4 个回复

倒序浏览
子类可以实现多个接口,但只能继承一个抽象类。另外,接口除了静态最终成员外,只能含有抽象的未实现方法,only public, abstract, default, static and strictfp 。而抽象类可以含有自己的成员,可以含有已经实现的方法,可以含有构造函数,最后含有1-多个需要子类实现的抽象方法。protected也可以作为抽象方法。
我认为一般接口是大多数对象都有的共性:比如 比较接口,序列化接口,不涉及对象的性质。
而抽象类则一般是实现了某些接口的,有一定特性的基类,已经实现了大部分的逻辑,而只有少量的方法需要子类去实现,通过实现这些方法,就可以形成不同的类。比如List 抽象类,不同的实现就造成了不同的子类

不过我认为接口和抽象类都是用于接收特定对象的。通过调用接口和抽象类限定的方法就可以无需关注底层实现,就可以通用的使用这些对象了。

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
wzg1015 发表于 2014-10-30 01:14
子类可以实现多个接口,但只能继承一个抽象类。另外,接口除了静态最终成员外,只能含有抽象的未实现方法, ...

继承抽象类是不是可以不用把方法全部覆盖呢??
回复 使用道具 举报
Eagle 发表于 2014-10-30 16:33
继承抽象类是不是可以不用把方法全部覆盖呢??

可以,但是这个继承抽象类的子类,也是个抽象类。
回复 使用道具 举报
姜浩 发表于 2014-10-30 16:55
可以,但是这个继承抽象类的子类,也是个抽象类。

额。。。刚看到。不是抽象类的只要复写抽象方法就好。。。汗。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马