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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李文帅 中级黑马   /  2013-10-23 22:44  /  1186 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李文帅 于 2013-10-24 16:27 编辑

听毕老师讲了抽象类和接口,抽象类和接口都可以包含抽象方法,那么它们有什么区别?使用时该如何选择?

评分

参与人数 1技术分 +1 收起 理由
李江 + 1 很给力!

查看全部评分

6 个回复

倒序浏览
抽象类里面包含抽象方法,需要被覆盖,但是也可以有具体方法。
接口中方法均为抽象的,并有固定的修饰词public abstract ;
接口中变量均为常量,固定修饰词public static final;
实现接口必须覆盖其全部方法。
回复 使用道具 举报
抽象类因为是被继承,可以定义成员的基本属性,定义的抽象方法为子类的共有特性。
比如定义抽象类为动物,子类都有吃的特性。但吃的方法不一样。比如猫吃鱼,狗吃骨头。就可以在父类定义一个吃的抽象方法。子类都要去实现该方法.
但子类他们都有走路的方法,并且走路方法是一样的。这个时候父类就可以定义走路这个方法。而接口是不能的,所有方法都是抽象的

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 很给力!

查看全部评分

回复 使用道具 举报
本帖最后由 hyz123456 于 2013-10-23 23:19 编辑

1.抽象类中可以包含抽象方法也可以包含非抽象方法,而接口中只有抽象方法。
2.抽象类中可以有构造函数,而接口中不存在构造函数。
3.接口中的方法没有方法体,需要在子类实现中将方法覆盖(override)。
4.在java中接口跟类是两个并行的概念,所有类都继承Object,但接口是接口,不继承Object,接口只能继承某一接口,但某个类可以实现接口(多个接口)。

      类与类之间不存在多继承,但是类和接口、接口和接口之间可以实现多实现(多继承),
这是java中多继承的一种特例,在使用抽象类或者接口的时候要注意他们的这个特性。
在一个类要继承多个父类的时候最好弄成实现的形式,这样能提高代码的复用性。
        

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
我的笔记:

a.jpg (32.38 KB, 下载次数: 7)

a.jpg
回复 使用道具 举报
抽象类和接口的异同点:
相同点:
都是不断向上抽取而来的。
不同点:
1,抽象类需要被继承,而且只能单继承。
接口需要被实现,而且可以多实现。
2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。
接口中只能定义抽象方法,必须由子类去实现。
3,抽象类的继承,是is a关系,在定义该体系的基本共性内容。
接口的实现是  like a  关系,在定义体系额外功能。
希望对您有帮助,这是我的学习笔记。

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 赞一个!

查看全部评分

回复 使用道具 举报
非常感谢大家的解释,我理解了!!!{:soso_e121:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马