在Java中通过GUI(图形用户界面)使用继承

在Java中通过GUI(图形用户界面)使用继承,java,Java,我使用GUI(图形用户界面)处理继承性 让我解释一下,例如,我创建了一个超级类,它是vehicle,子类是car,所以创建继承的代码将是 公车 然后我想造一辆像JFrame一样的车 公共类Car扩展JFrame实现ActionListener{ 所以问题是我不能把两个代码放在同一个类中,我需要这样做 有人帮我吗?先谢谢 我希望问题能够清楚将Car类重命名为CarView或使用其完全限定名引用其他Car类,例如myapp.domain.Car,而不仅仅是Car。考虑以下示例: A类扩展B类 在继承

我使用GUI(图形用户界面)处理继承性

让我解释一下,例如,我创建了一个超级类,它是vehicle,子类是car,所以创建继承的代码将是

公车

然后我想造一辆像JFrame一样的车

公共类Car扩展JFrame实现ActionListener{

所以问题是我不能把两个代码放在同一个类中,我需要这样做

有人帮我吗?先谢谢


我希望问题能够清楚

将Car类重命名为CarView或使用其完全限定名引用其他Car类,例如myapp.domain.Car,而不仅仅是Car。

考虑以下示例:

A类扩展B类

在继承之前,如果
A是一种B
,请三思,现在告诉我如果
汽车是一种框架类型,请不要继承

创建一个JFrame,并将汽车添加到其中


更好的解决方案: 将汽车划分为模型视图控制器类..并将汽车视图添加到屏幕上(
class-Sceen-extends-JFrame

现在你的汽车的MVC将分别继承汽车的MVC!现在它有了意义:
汽车就是一辆汽车。


更好的方法是:在
Screen
中使用函数获取汽车的视图对象,并在
Screen
中绘制它,而不是将汽车的视图添加到屏幕(
AGGREGATION
),从而实现低耦合。!

Java在设计上不允许使用多个超类(这是很好的理由。)

但是,没有什么可以阻止您让Vehicle扩展JComponent(*), 汽车延伸车

public class Car extends Vehicle {
...
}
*)对于基类来说,JComponent可能是更好的选择,因为JFrame是一个非常特殊的gui元素。可以将JComponent添加到JFrame中

此外,该设计假定车辆(etc)的主要用途是
车辆的图形表示。Othervise,你可以考虑将车辆驾驶员和车辆中的行为分开,例如,如果车辆实际上代表了现实生活的车辆,你正在从数据库中装载/存储车辆等。< / P>坏的继承:车辆扩展JCube!为什么它是坏的,如果目的是成为一个WIDG的话。et代表一辆车?正如我所写的,如果目的是代表一辆实际的车(比如,它有一个标识),是的,那么它是“坏的”。