所以我有以下代码
public class Car {
int trunkCapacity;
public Car (String manufacturer, int topSpeed, int trunkCapacity) {
super();
this.trunkCapacity = trunkCapacity;
System.out.println("Returning from Car constructor");
}
public Car () {
this("UnknownCar", 100, 1);
System.out.println("Returning from default Car constructor");
}
public String toString() {
return "This trunk capacity is" + this.trunkCapacity;
}
}
它一直在说"构造函数Object(String,int)未定义"当我把super(制造商,topSpeed);
我需要将String值和int topSpeed传递给超类,但我不知道该怎么做。我该如何输入这个super()?
谢谢大家的帮助,你确实帮助改进了它,但我发现主要的问题是在我的另一个班级,谢谢。
答案 0 :(得分:2)
你为什么称超级?
public class Car
从上面一行可以看出,你没有扩展任何类,这意味着默认情况下Car extends Object
和Object
类没有Object(String, int)
形式的构造函数
Object
只有一个
答案 1 :(得分:2)
这是你的问题:
您的类Car
不会扩展任何超类,因此您无法使用参数调用超类的构造函数。
实际上,你的类扩展了默认类Object
(每个类的超类),所以你的字面意思是:
public class Car extends Object {
//...
}
但是类Object
有一个默认的构造函数,因此不带任何参数。
如果您希望调用超类,并将参数传递给它,您必须创建它,并extend
使用它Car
类。
<强> 实施例 强>
public class Vehicle {
public Vehicle(String manufacturer, int topSpeed) {
//...
}
}
public class Car extends Vehicle {
//...
}
要了解有关java中的类(和接口)继承的更多信息,请删除:http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html