Java 超类和传递值
所以我有以下代码Java 超类和传递值,java,constructor,superclass,Java,Constructor,Superclass,所以我有以下代码 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 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;
}
}
当我输入super(manufacturer,topSpeed)时,它一直在说“构造函数对象(String,int)未定义”
我需要将字符串值和int topSpeed传递到超类中,但我不确定该做什么。如何键入此super()
谢谢大家的帮助,你确实帮助改进了它,但我发现主要的问题是在我上的另一节课上,谢谢。你为什么打电话给super
public class Car
从上一行可以明显看出,您没有扩展任何类,这意味着默认情况下Car扩展Object
,并且Object
类没有Object(String,int)形式的构造函数
对象
仅为表单的一个构造函数初始化
()用于调用超类的构造函数。您可以在中阅读有关构造函数链接的内容。您为什么要调用super
public class Car
从上一行可以明显看出,您没有扩展任何类,这意味着默认情况下Car扩展Object
,并且Object
类没有Object(String,int)形式的构造函数
对象
仅为表单的一个构造函数初始化
()用于调用超类的构造函数。您可以在中阅读有关构造函数链接的内容,这里是您的问题:
您的类Car
不扩展任何超类,因此不能使用参数调用超类的构造函数
实际上,您的类扩展了默认类对象
(每个类的超类),因此您真正拥有的是:
public class Car extends Object {
//...
}
但是类对象
有一个默认构造函数,因此不接受任何参数
如果您希望调用一个超级类,并将参数传递给它,则必须创建它,并使用它扩展您的Car
类
示例:
要了解java中类(和接口)继承的更多信息,请删除以下内容:这是您的问题:
您的类Car
不扩展任何超类,因此不能使用参数调用超类的构造函数
实际上,您的类扩展了默认类对象
(每个类的超类),因此您真正拥有的是:
public class Car extends Object {
//...
}
但是类对象
有一个默认构造函数,因此不接受任何参数
如果您希望调用一个超级类,并将参数传递给它,则必须创建它,并使用它扩展您的Car
类
示例:
要了解java中类(和接口)继承的更多信息,请删除以下内容:什么超类?为什么?你认为super做什么和super class是什么?应该有某种方法可以做到这一点,这一步的确切措辞是“显式调用super(String,int)将值传递给super class”我自己才开始自学。要显式地调用超级类,首先需要为子类创建一个合适的父类/超类。然后,您需要使用extends
关键字告诉编译器这两个类之间的关系。什么超类?为什么?你认为super做什么和super class是什么?应该有某种方法可以做到这一点,这一步的确切措辞是“显式调用super(String,int)将值传递给super class”我自己才开始自学。要显式地调用超级类,首先需要为子类创建一个合适的父类/超类。然后,您需要使用extends
关键字告诉编译器这两个类之间的关系。应该有某种方法可以做到这一点,这一步的确切措辞是“显式调用super(String,int)将值传递到super类”对象确实有一个默认构造函数。应该有某种方法可以做到这一点,这一步的确切措辞是“显式调用super(String,int)将值传递到super类”对象
没有默认构造函数。