值得思考的问题——C++支持多继承而Java不支持多继承的原因

近几次面试中,由于简历上写了熟悉java,了解C++语言。面试官都问到了一个问题——为什么C++支持多继承,Java不支持呢?

Java在面向对象的特性上与C++有很多相似的地方。比如继承、对象等等。但他又省去了一些很令人头疼的东西,比如指针、多重继承。至于为什么不支持多重继承,这里面涉及到很著名的菱形继承问题。

简单来说:我们有两个类B和C继承自A.假设B和C都重写继承的方法,他们提供自己的实现。现在B和C从D继承多重继承。D应该继承,重写的方法,将用于重写的方法吗?它从B或C?在这里,我们有歧义。在C++中我们可能会掉入这个陷阱,但是它同样有自己的机制去解决这个问题。那就是使用虚继承。https://blog.csdn.net/tounaobun/article/details/8443228 使得在编译的或城中只产生一个基类。

讲的很好。

https://blog.csdn.net/tounaobun/article/details/8443228

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值