我使用GUI(图形用户界面)进行继承
让我解释一下例如我制作了超级类,它是车辆,而子类是汽车,所以继承的代码将是
公共类汽车扩展车辆
然后我想将类Car构建为JFrame,如
public class Car extends JFrame实现了ActionListener {
所以问题是我无法将两个代码放在同一个类中,我需要这样做。
有人帮助我。提前谢谢我希望问题清楚
答案 0 :(得分:1)
考虑以下示例:
class A extends B
在继承之前,请三思而后A IS A KIND OF B
,现在告诉我CAR IS A TYPE OF FRAME
?没有??然后不要继承。
创建一个JFrame,然后添加汽车......
更好的解决方案:
将Car划分为模型 - 视图 - 控制器类..并将Car的视图添加到屏幕(class Sceen extends JFrame
)
现在你的Car的MVC将继承车辆的MVC。现在有意义:CAR IS A VEHICLE.
更好:不是将汽车的视图添加到屏幕(AGGREGATION
),而是在Screen
中使用一个函数来获取Car的视图对象并将其绘制在Screen
中(这是一个{ {1}})。从而实现低耦合。!
答案 1 :(得分:1)
Java不允许设计多个超类(并且有很好的理由。)
然而,没有什么可以阻止你让Vehichle扩展JComponent(*), 和汽车延伸车辆。
public class Car extends Vehicle {
...
}
*)JComponent可能是基类的更好选择,因为JFrame是一个相当特殊的gui元素。可以将JComponent添加到JFrame中。
此外,此设计假设车辆(等)的主要目的是a 车辆的图形表示。另外,您可以考虑在VehicleViewer和Vehicle中划分行为,例如,如果车辆实际上代表真实车辆,则您从数据库中加载/存储车辆等。
答案 2 :(得分:0)
将Car类重命名为CarView或使用其完全限定名称引用其他Car类,例如: myapp.domain.Car而不仅仅是Car。