【问题标题】:Is extending class by class which extedning another class a good practice?逐个扩展类扩展另一个类是一种好习惯吗?
【发布时间】:2020-02-06 03:03:28
【问题描述】:

在 Java 中扩展多个类对我来说是缺失的。我想在一个类中定义一些属性和方法,以将这些属性和方法保存在一个地方,这些属性和方法将在多个类中用于不同的目的。接下来,我需要 JPanel 功能,所以我也需要通过这个类扩展我的类。

我考虑了一种解决方案,但我不确定它是否正确。 这是做这样的事情的好习惯吗?我有课:

/*
* Class for keeping common arguments
* it is not possible to extends by two classes
* so I need extend here JPanel
*/
public class **ContentPanel** extends javax.swing.**JPanel** {
  private arg1;
  private arg2;

public void commonMethod1() {

}
/* ... */
}

接下来,我将这个扩展用于一些类:

public class CashboxesPanel extends ContentPanel {
  /* specific class with all needed functionality, some arguments, methods used only for this class ect. */
}

public class CardIndexesPanel extends ContentPanel {
/* next specific class with implemeted original funcionality not used anywhere */
}

/* more classes */

我看到了主要的缺点:

  • 尚不清楚有多少类被其他类扩展。我必须检查扩展类的来源以检查它是否没有扩展另一个,
  • 我没有看到最重要的信息:基类是 JPanel,
  • 如果不明确具有更多类的“链”会很糟糕...

当然,接口不能有属性和实现的方法,所以它们对我不可用。 对于抽象类也不支持扩展多个。

有人可以就如何处理 Java 的继承问题给我一些建议吗? (= 请告诉我,世界仍然很美,我的问题有一个现有的“美丽”解决方案......)

【问题讨论】:

标签: java inheritance extends


【解决方案1】:

有一种意见是composition is better than inheritance

您可能想看看strategy patterndecorator pattern

【讨论】:

    猜你喜欢
    • 2014-12-22
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 2014-03-09
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    相关资源
    最近更新 更多