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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张乃智 中级黑马   /  2012-2-27 11:20  /  2182 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java中继承与实现接口的联系是什么啊?
什么情况下用继承,什么情况下用接口更好呢。

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1 这个问题你肯定知道

查看全部评分

10 个回复

正序浏览
许圣建 发表于 2012-2-27 16:29
我是零基础的接触没几天,不过这个确实是老师讲的重点。
1,我觉得毕老师讲的PCI接口,直接将抽象化为具体 ...

恩,跟老毕教的时候说的一样:o
回复 使用道具 举报
这问题不能复杂话去理解, 我用我的方式清晰简单的表达出来把!
继承:有老爸有儿子,   在java里面只有一个老爸。老爸会的,儿子也会。
接口:我有了老爸了,老爸从小教我学习开车我有开车的技能,我看到一个会开坦克的我想要个干爹!,认到了干爹干爹教你开坦克,这时你也具备了开坦克的技能。
回复 使用道具 举报
我是零基础的接触没几天,不过这个确实是老师讲的重点。
1,我觉得毕老师讲的PCI接口,直接将抽象化为具体了。
     模块化,模块之间的信息message相互传递,就是广义的接口,
     当我们把这部分message传递的规范,抽象单独提取出来,就是狭义的接口了。
     为了易于维护和通用,我们不愿意一块板子,也就是一个类中,定义所有的功能,我们尽量将功能化繁为简,抽出多个具有一定通用性的功能,
     从而我们只需要在主板main函数,调度其他通过接口实现的扩展卡,也就是调度对象的功能,就能完成所需的工作。
2,什么时候用继承呢?当你的base class可以不带任何函数定义和任何成员变量时,你首选的应该是interface。
     为了降低耦合性,父类应该尽可能的抽象。多个接口实现功能显然比一个类实现功能,程序耦合性要低。
3,使用选择的顺寻应该是:interface----->abstract class----->concrete class
回复 使用道具 举报
黄方 中级黑马 2012-2-27 14:44:46
8#
本帖最后由 舞动的心弦 于 2012-2-27 14:45 编辑

只想说一句,你可能是程序写少了吧,呵呵,,,这个问题应该不算什么技术含量的题吧,在面向对象这块建议你好好看看书或者老马或者是老韩的视频!至于书嘛,《Thinking in java 》不错!很好理解的啦,加油!{:soso_e121:}
回复 使用道具 举报
“继承”与“实现接口”在java里面是面向对象的两种实现方式,“继承”在java里面只支持单一继承,而“实现接口”可以实现多个接口,而java里一般是推荐后者的,在JAVA中可以使用继承,但是却不能实现多重继承,但是在现实中,我们大多数的程序都会使用到多重继承,因为这样可以大大节约我们的时间和精力,这时候就就需要用到接口了。
回复 使用道具 举报
具体问题具体对待啦,java中只支持单继承,不支持多继承;要想实现多继承的思想,就要用接口来实现。一个类可以实现多个接口。
回复 使用道具 举报
在 java 中 接口与类的不同在于 类只能单继承,而类可以多继承。如果你继承的接口功能只是你要实现的功能一个部分,那么你得继承多个接口,我来举个例子来说明一下:门大家都很熟悉。那么门有好多种,有带把手的,有带报警的。那么现在我想要这两种功能都有的门,那怎么办,对于把手接口和报警接口,无论你实现哪一个都不行,所以只有俩个一起实现才能,这样接口多继承性就体现出来了。
回复 使用道具 举报
在一个类的基础上开发你自己的类 用继承, 想让这个类更强大,可以定义自己的方法,也可以实现接口(前提是这个接口定义了你所需要的方法),根据感觉,使用接口要好些,因为可以通过 instanceof  来判断你的当前类有没有实现什么 接口的方法,便于使用,还有java的Proxy动态代理就是依据接口来实现的。
回复 使用道具 举报
djx900 发表于 2012-2-27 11:26
实现 以前有过的功能 用继承能表达的具体,但是只能单继承

为了给以后提供新的功能扩展  就合适用 接口扩 ...

:dizzy:。。。
回复 使用道具 举报
实现 以前有过的功能 用继承能表达的具体,但是只能单继承

为了给以后提供新的功能扩展  就合适用 接口扩展毕竟都是抽象的 多点没事

我也是新手 不知道我理解的对不对
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马