我经历过各种网站,了解java不支持多重继承。其中一个原因是避免了诸如强制转换和构造函数链接之类的问题。多重继承如何导致Java中的转换和构造函数链接问题?任何人都可以用例子来解释我。
答案 0 :(得分:0)
多重继承可能成为问题的原因有多种,为了防止这些问题,Java根本不允许这样做。主要的是钻石继承,也就是钻石问题。假设你有超级动物,并且有陆地和水的子类。现在,让我们说你创建另一个类,青蛙。因为青蛙可以生活在水中或陆地上,所以你决定青蛙类将从土地和水中固有。所以它将成为土地和水的子类。
让我们扩展我们的场景,说动物类有移动方法。这种方法让动物行进一段距离而没有说明它们是如何做到的。土地子类重写此移动方法以指定动物正在行走。同时,水子类优先指定动物游泳。如果一只青蛙试图移动,它就不会知道它是游泳还是走路。这可能会导致一些严重问题,并且是EJP所指的基本问题。