Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 超类和传递值_Java_Constructor_Superclass - Fatal编程技术网

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类”
对象
没有默认构造函数。