高分悬赏:Java语言为什么不能同时从2个类继承,而C++就是可以的,是不是Java语言的缺陷呢
Java 的特点就是单继承、多接口实现。
为什么不支持多继承呢?有很多很多讨论这个问题的文章,参考:https://blog.csdn.net/u014133299/article/details/77571912
java中没有多继承,但是有多实现,其实在java中通过单继承和多实现的方式已经可以满足开发中各种需求,在c语言中多继承也会出现从冲突,只是c语言中又通过了其他方式去处理解决冲突,所以这个不是语言上是否存在缺陷,只能说是每种语言他们具有的更适合自己的一些特征
首先,在C语言中,多重继承会出现一些问题,若类A同时继承了类B和类C,而类B和类C又恰好同时拥有方法say
,调用对象A的say
方法就会出现歧义,Java觉得这样不好,因此抛弃了多重继承。按我的理解,extends
指的是is-a
的关系即继承与被继承本质上应该属于同一种事物,多重继承不但会造成冲突,还让一个类变得不伦不类,看不出这个类的本质,因此Java抛弃了这个特性,而相对的,Java提出了接口,用于定义多个类别的共同行为,接口是可以多实现的。希望你能稍微理解一些~
不同的语法特性而已。玩得不溜不推用多重继承,用不好容易出错和不利于维护。
java是单继承多实现的语言
java 就是这样的 只可单一继承! 因为是java 所以是这样!!!
现在JAVA不用继承 用依赖关系也可以实现继承的功能
因为c语言的多重继承的问题很多。因此Java为避免这个问题,Java就只能单一继承,但是它可以通过使用接口来达到多重继承的目的。