黑马程序员技术交流社区

标题: extends与implements区别? [打印本页]

作者: 老虎    时间: 2015-4-3 20:34
标题: extends与implements区别?
看了视频,老师讲的好像继承都可以使用implements,而extends用得相对于少很多,以后我们还是大多时间使用implements吗?
作者: Werewolf_zl    时间: 2015-4-3 20:46
implements是用来实现接口,而extends是用来继承类
而且JAVA是单继承,所以一般使用接口来说比较灵活。
一个类可以实现很多接口,但只能继承一个类。
作者: 风飘逸    时间: 2015-4-3 21:06
extends 用于类继承类或者接口继承接口。implements 用于类实现接口。extends用于继承类只能单继承,用于接口可以多继承。implements则可以用于多实现
作者: 屠赞华    时间: 2015-4-3 21:13
刚学完extends它是继承 面向对象包括 继承 多态  封装 抽象这几个特性 implements抽象我还没学呢
作者: z小怪兽    时间: 2015-4-3 21:21
一个是继承,一个是实现接口
作者: hbk000    时间: 2015-4-3 21:35
你搞颠倒了吧,extends是继承关键字
作者: 天空的彩虹    时间: 2015-4-4 19:49
extends 用于类继承类或者接口继承接口。implements 用于类实现接口。extends用于继承类只能单继承,用于接口可以多继承。implements则可以用于多实现
作者: 老虎    时间: 2015-4-4 21:36
Werewolf_zl 发表于 2015-4-3 20:46
implements是用来实现接口,而extends是用来继承类
而且JAVA是单继承,所以一般使用接口来说比较灵活。
一个 ...

谢谢,明白了 ,还是需要多多练习更加深刻
作者: 老虎    时间: 2015-4-4 21:38
天空的彩虹 发表于 2015-4-4 19:49
extends 用于类继承类或者接口继承接口。implements 用于类实现接口。extends用于继承类只能单继承,用于接 ...

谢谢,明白了!:loveliness:
作者: 快乐ABC    时间: 2015-4-4 23:59
extends是类继承类   接口集成接口,   implements是类实现接口  不一样的
作者: 黑马TYR    时间: 2015-4-5 00:23
看需求,java中只能单继承,因为多继承时两个父类的方法相同,子类不知到该继承或复写哪一个,而实现是一个功能的扩展,扩展之后还可以继承或实现
作者: 黑色救护车    时间: 2015-4-5 07:21
本帖最后由 黑色救护车 于 2015-4-5 07:24 编辑

不一定的。extends是继承的意思,可以理解为生活中的“是”;比如,学生是人。implements是实现的意思,可以理解为生活中的“像”;比如学生像是会修电脑;extends的继承关系中,父类一般抽取子类共性的属性或方法;而implements的实现关系中,父类一般提供子类的扩展方法;如刚才所说,学生extends的父类,一定有名字,年龄等属性,有学习,睡觉等方法;学生implements的接口,可以提供修电脑等扩展功能。因为java是单继承,多实现;继承一个父类,就不能继承其他父类了;但是实现,是可以实现多个接口。
至于多用implements,少用extends,要视情况而定。如创建多线程的时候,应该多用implements,而少用extends;因为万一一个类已经继承了父类,但是又有代码需要多线程运行,就无法再extends继承Thread类,只能implements实现Runnable接口了。
希望对你有帮助!

作者: liuzhen    时间: 2015-4-5 08:12
extends 用于类继承类或者接口继承接口。implements 用于类实现接口。extends用于继承类只能单继承,体现了继承的单根性
用于接口可以多继承。implements则可以用于多实现
作者: 老虎    时间: 2015-4-5 10:01
黑色救护车 发表于 2015-4-5 07:21
不一定的。extends是继承的意思,可以理解为生活中的“是”;比如,学生是人。implements是实现的意思,可 ...

意思理解了,具体应用看来还得好好练习!谢谢
作者: 帆风顺    时间: 2015-4-5 11:19
继承只能继承一个类,但是可以实现多个接口
作者: 王振光    时间: 2015-4-5 11:55
把接口看做是拓展功能就好。  比如人有游泳方法,鱼也有有游泳的方法。就把游泳作为接口抽出来。

如果你说人和鱼都继承动物,动物都游泳的方法。但是有的动物是不会的 。
动物分成两种  会游泳的就继承这个游泳的接口。

不是动物是东西也能到水里去,比如潜水艇。   那就用潜水艇接口游泳。说的很抽象,看多了就能理解了。
大家都是这样过来的。  加油!!!


作者: 老虎    时间: 2015-4-5 12:09
王振光 发表于 2015-4-5 11:55
把接口看做是拓展功能就好。  比如人有游泳方法,鱼也有有游泳的方法。就把游泳作为接口抽出来。

如果你 ...

谢谢,更加形象了!
作者: caotierong    时间: 2015-4-5 12:19
王振光 发表于 2015-4-5 11:55
把接口看做是拓展功能就好。  比如人有游泳方法,鱼也有有游泳的方法。就把游泳作为接口抽出来。

如果你 ...

这例子够金典
作者: MartinYu    时间: 2016-7-5 11:47
一个是继承,一个是实现
作者: 孟小垚    时间: 2016-7-5 12:45
implements 这个是实现接口的,不是继承,extends 这个是继承,只能单继承,也可以多层继承
作者: 纸牌屋    时间: 2016-7-5 21:30
个人觉得接口可以多实现,继承只能单继承,所以接口用起来更灵活吧。
作者: 迅雷    时间: 2016-7-5 22:05
extends是继承,类和类之间,接口和接口之间可以用继承;implements是实现,类实现接口.要区分它们是什么关系,不是都能用implements的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2