首页 > 解决方案 > 关于致命钻石问题(多重继承)的问题

问题描述

我知道在stackoverflow中已经有很多人问过致命的钻石问题,但是他们问的问题不是我想问的,所以当我遇到这种问题时,谁能告诉我解决方案是什么。

下图(A)是典型的菱形问题,(B)是将音乐家和演员从类更改为接口以实现多重继承的解决方案。但是我想问的是,如果我也需要音乐家和演员班呢?一般来说,并非所有人都是音乐家和演员,有些人只是音乐家,有些人只是演员,如果我将这两个类更改为接口,这是否意味着如果我需要音乐家,我也使用 Performer 类来创建对象?如果是这样,我为什么要创建音乐家和演员界面?即使考虑未来的继承问题,如(C)所示,我不认为接口可以帮助任何代码可重用,唯一可以帮助的就是限制人它必须服从音乐家接口有什么。这两个问题我真的很困惑,谁能详细告诉我?非常感谢您的帮助。

显示的钻石问题图像

标签: multiple-inheritancediamond-problem

解决方案


推荐阅读