为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不扩展JFrame和其他组件?

为什么不扩展JFrame和其他组件?

ITMISS 2019-11-03 04:04:29
我已经看过几次,但是在我看到的帖子中,没有人解释。为什么我不应该扩展JFrame(或任何组件)?是否存在我应该扩展组件的条件,或者这是您不应该采用的严格规则?
查看完整描述

3 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

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

通常,其意图是严格使用该类来绘制框架,并且优先于继承而不是继承。

话虽这么说,当您打算让子类向Frame添加项目特定功能(例如便捷方法等)时,子类应该很好,在这种情况下,将使用子类代替Frame本身,但通常将其用作框架,而不是作为应用程序中特定框架的视图。



查看完整回答
反对 回复 2019-11-04
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

优先考虑组成而不是继承。所有通常的原因。组合强制减少代码之间的依赖性。

Swing和事件AWT的组件非常复杂。您不想陷入那种混乱。您可以轻松地意外覆盖方法。如果您确实需要重写方法,那么如果它属于普通代码,则很难看到它在哪里完成。


查看完整回答
反对 回复 2019-11-04
?
千万里不及你

TA贡献1784条经验 获得超9个赞

如果您的应用程序确实只是一个JFrame,请继续进行扩展。但是,如果仅使用 JFrame ,则最好使用对象组合而不是继承。

例如,如果您的对象扩展了其他对象,那么您将别无选择


查看完整回答
反对 回复 2019-11-04
  • 3 回答
  • 0 关注
  • 257 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信