黑马程序员技术交流社区

标题: 基础班的继承问题 [打印本页]

作者: 哦啊啊    时间: 2016-10-6 14:11
标题: 基础班的继承问题
java不支持多继承 支持多层继承
多继承会出什么问题  为什么不支持多继承呢?
大神来解答解答 算是扩展把

作者: 哦啊啊    时间: 2016-10-6 14:12
不要跟我说什么一个子只能有一个爹这种 我问的是why!
作者: 孙自文    时间: 2016-10-6 14:20
你可以理解为一个孩子只能有一个亲爹!

作者: 易东伟    时间: 2016-10-6 15:05
如果多继承的话,那么两个父类都有相同的属性,子类继承哪个父类的属性呢?这会造成数据混乱

作者: 哦啊啊    时间: 2016-10-6 15:24
易东伟 发表于 2016-10-6 15:05
如果多继承的话,那么两个父类都有相同的属性,子类继承哪个父类的属性呢?这会造成数据混乱
...

比如说,可是其它语言都可以多继承

作者: 风暴之灵    时间: 2016-10-6 22:19
继承就是儿子跟爹的关系!
作者: 小明教授    时间: 2016-10-6 22:22
会造成数据不安全
作者: lovebaby    时间: 2016-10-6 22:33
这是语法格式,没有为什么。前期的时候死记住就行,后期你写代码多了,逐步就能理解了。
作者: 刘野    时间: 2016-10-6 22:45
没有为什么,记住就好了
作者: 飞舞的指尖    时间: 2016-10-6 23:26
如果多继承的话,子类继承多个父类的同一个方法,此时会出现选择问题...
作者: huangweicong    时间: 2016-10-6 23:28
不能有两个亲爹,但是可有多个干爹,这就是单继承,多层继承
作者: mawenliang    时间: 2016-10-7 00:16
111111111111111111
作者: 哦啊啊    时间: 2016-10-7 08:04
都说了是扩展了!我上网查了

作者: Young66329    时间: 2016-10-7 08:25
会造成混乱,因为两个父类可能会有相同的方法或者属性,该继承谁的就成了一个问题

作者: 1985206835long    时间: 2016-10-7 09:00
记住就好了,
作者: 干煸爪哇鱼    时间: 2016-10-7 10:01
会混乱,只有一个亲生的
作者: 哦啊啊    时间: 2016-10-7 11:18
   在java的继承中有个名词叫“致命方块”,是翻译过来的,原来的英文是“deadly diamond of death”具体的含义如下:
      
       如图:
      

类B和类C均继承自A,而类D分别继承了B和C,如果B或者C重写了类A中的某个方法methodA,而类D没有重写类A的这个methodA,那么当类D调用methodA方法时,到底该调用哪个方法呢?
而根据图形,我们一看就知道它很像扑克牌里面的方块,所以将该问题称为致命方块。

作者: 哦啊啊    时间: 2016-10-7 11:20
Young66329 发表于 2016-10-7 08:25
会造成混乱,因为两个父类可能会有相同的方法或者属性,该继承谁的就成了一个问题
...

说的没错,兄弟学得不错啊

作者: 易东伟    时间: 2016-10-7 11:40
哦啊啊 发表于 2016-10-6 15:24
比如说,可是其它语言都可以多继承

其他语言是可以,数据使用的时候也是有数据申明的,但是java 没有这个设计,所以不能多继承。这个与语言设计有关系。

作者: 喝咖啡的玉米    时间: 2016-10-7 12:03
回去看视屏,别水
作者: 煤男纸    时间: 2016-10-7 12:35
如果两个父类中有相同的方法,继承的子类就不知道要实现哪个父类的方法,所以Java不支持多继承

作者: peterpan123    时间: 2016-10-7 22:02
亲爹爹只有一个,干爹可以有多个,这种东西没必要纠结,写个代码试下.




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