我有一个 Bicycle 类是父类。 我想要前轮和后轮有两个子类。 有没有一种方法可以让我只创建一个父类(super class)实例,然后创建两个单独的子类实例,它们只共享一个父类(super class)实例。基本上自行车是一个,但轮子是两个,因此自行车的公共(public)变量只需实例化一次。我想采用 IS-A 关系,这样我就可以重用许多变量和方法。另外,我不能在这里使用静态,因为每辆自行车都是不同的实例。
例如:
class Bicycle {
String name;
int year;
double price;
}
class FrontWheel extends bicycle {
double wheelSize;
}
class BackWheel extends bicycle {
double wheelSize;
}
在主程序中,如果我创建 FrontWheel 和 BackWheel 的实例,显然会正确创建两组公共(public)变量(年份、名称等)。有没有办法避免公共(public)变量的内存分配重复? Java 中还有其他可用的选项吗?
最佳答案
FrontWheel
不是自行车
,但是自行车包含两个轮子!这是一个错误使用继承的示例。
您应该在自行车中有一个 FrontWheel 和 BackWheel 实例。
因此,例如
class Bicycle {
String name;
int year;
double price;
Wheel frontWheel,rearWheel;
}
class Wheel{
protected double wheelSize;
}
关于java - 两个子类仅共享父类(super class)变量的一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25719984/