java - 为什么不应该扩展 JFrame 和其他组件?

标签 java swing inheritance components

我已经看到这里出现了几次,但是在我看到的帖子中,没有人解释它。为什么我不应该扩展 JFrame(或任何组件)?是否存在我应该扩展组件的条件,或者这是您不应该扩展的固定规则?

最佳答案

一般来说,扩展组件倾向于严格使用组件。这在设计方面以不必要的方式严重限制了您的选择,因此您的类无法扩展不同的类,您无法隐藏 JFrame 的方法,导致它更难以维护并且更容易在使用该类时触发意外错误.

通常的意图是严格使用类来绘制框架,并且组合优先于继承。

话虽如此,当您希望您的子类将项目特定的功能添加到框架(例如便利方法等)时,子类化应该没问题,其中将使用子类而不是框架本身,但用作框架,而不是应用程序中特定框架的 View 。

关于java - 为什么不应该扩展 JFrame 和其他组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1143923/

相关文章:

python - 在sqlalchemy中,当子表有多个父表的外键时,如何使用多态连接表继承?

java - 在 Java 中类型转换为字节

java - 拆分 Java 字符串,其中拆分位置之前存在理想分隔符

java - SVN关键字配置

java - 剪辑区域以在动画期间隐藏 JWindow

java - 从jspinner中删除逗号

java - 方法不覆盖抽象父类(super class)

java - Spring 交易未提交

java - 获取 JFrame 在平铺窗口管理器上显示 float

c++ - 您可以将子类作为参数传递给具有父类(super class)参数的函数吗? C++