【问题标题】:Allowing classes with different parents to extend class without multiple inheritance允许具有不同父级的类在没有多重继承的情况下扩展类
【发布时间】:2013-07-08 22:42:46
【问题描述】:

我的应用程序有以下类:

MyTextField,扩展 JTextField

但是,我需要以下类中 MyTextField 中的方法:

MyPasswordField,扩展 JPasswordField

Java 中不允许多重继承,因此我想避免复制粘贴 85% 的类。如何克服这个“限制”?

【问题讨论】:

  • 关于我为什么要这样做;这两个字段都将使用相同的“系统”作为占位符,这两个 JXXXField 类都缺少。

标签: java oop inheritance multiple-inheritance


【解决方案1】:

使用定义共享功能的帮助类。在MyTextFieldMyPasswordField 中分别声明一个字段来保存帮助程序类的实例。根据共享功能的需要中继调用助手,然后只需要编码一次。

【讨论】:

    【解决方案2】:

    为什么不使用组合而不是继承。 您的 MyPasswordField 类可以包含 myTextField 的实例变量,然后您可以使用您的实例及其方法使用该方法。 如果我走错了路,请告诉我,而您会期待一些不同的东西。

    【讨论】:

      【解决方案3】:

      您可以借助具有静态方法的 Helper 类来实现这一点,因此您无需在测试字段类中保留 helper 类的实例。

      【讨论】:

        猜你喜欢
        • 2015-11-25
        • 2012-07-10
        • 1970-01-01
        • 2011-10-19
        • 2012-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-08
        相关资源
        最近更新 更多