OOP初学者在这里...我有一个名为Rectangle的超类,它有一个接受int高度和int宽度作为参数的构造函数。我的任务是创建一个改进的Rectangle子类,其中还包含一个不需要参数的构造函数。需要无参数的构造函数为子类,但超类没有它
那么,我该怎么做,而不会弄乱超类?
public class BetterRectangle extends Rectangle
{
public BetterRectangle(int height, int width)
{
super(height,width);
}
public BetterRectangle()
{
width = 50;
height = 50;
}
}
这给了我“隐式超级构造函数是未定义”。显然我需要调用超类的构造函数。但是用什么?只是随机值,后来被覆盖?
另一个问题是您没有宽度,高度的实例变量,因此分配也失败。 – kosa
@Nambari它们可以在'Rectangle'中定义为非'private'成员。 – GriffeyDog
@GriffeyDog:如果是这样的话,我认为使用构造函数重新设置值是多余的权利? – kosa