【问题标题】:Java: Alternative to Multiple inheritanceJava:多重继承的替代方案
【发布时间】:2013-06-18 01:27:44
【问题描述】:

我有一个 A 类,它必须扩展 B 类和 C 类,它们都是由第 3 方提供的,我无法控制它们。由于Java不支持多重继承。在我的情况下使用接口没有帮助,因为我确实想继承基类的实现并且我不想将它们的代码复制到我的类中,或者我需要了解它们即将发生的所有变化。

满足这一需求的最佳方法是什么?

所有建议将不胜感激!

【问题讨论】:

  • 为什么不使用组合而不是继承? A中有一个C和一个B

标签: java inheritance interface abstract-class multiple-inheritance


【解决方案1】:
class A

    class B2 extends B

        inherit B's stuff

    class C2 extends C

        inherit C's stuff

    B2 b2 = new B2();
    C2 c2 = new C2();
    // or use anonymous classes

    A has access to everything in B2 and C2,
    therefore A has access to B and C's inheritable assets.

【讨论】:

  • 感谢您的回复!这和我做的有点相似。我有 A 类扩展 B 并将 C 类作为内部类,但它不能很好地工作,因为我实际上需要 A 类是 B 并且是 C。这可能吗?
  • 您可以在class A 中使用C asC() 方法,因此如果您需要将a 传递给需要C 的人,请将a.asC() 传递给它。
猜你喜欢
  • 1970-01-01
  • 2015-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多