Java super()类在构造函数中不起作用,因为构造函数必须是构造函数中的第一条语句,但它是

Java super()类在构造函数中不起作用,因为构造函数必须是构造函数中的第一条语句,但它是,java,Java,为什么super()构造函数在此构造函数中不起作用?它一直告诉我它必须是构造函数中的第一条语句,但即使它是第一条语句,它也不起作用 当它是第一个声明时,我也不能使用它,因为在我的程序中,我必须首先检查是否有足够的汽车和汽油,然后才能出售汽车。有什么办法可以解决这个问题吗?我想我必须这样做,我们的教授告诉我们 public class PassengerCarTrader extends CarTrader { public static final int CAPACITY_AUDI

为什么super()构造函数在此构造函数中不起作用?它一直告诉我它必须是构造函数中的第一条语句,但即使它是第一条语句,它也不起作用

当它是第一个声明时,我也不能使用它,因为在我的程序中,我必须首先检查是否有足够的汽车和汽油,然后才能出售汽车。有什么办法可以解决这个问题吗?我想我必须这样做,我们的教授告诉我们

public class PassengerCarTrader extends CarTrader {

    public static final int CAPACITY_AUDI = 4;
    public static final int CAPACITY_BMW = 4;
    public static final int CAPACITY_OPEL = 4;
    public static final int CAPACITY_MERCEDES = 3;


        public void sellCar(int brand){

            super(brand);

        Vehicle soldVehicle=null;

        switch (brand){
        case 1://AUDI

            if (this.audiStock>=1 && this.gasStockLiters>=Vehicle.TANK_SIZE_PASSENGER_CAR){
                this.audiStock = this.audiStock - 1;

            } else {

                System.err.println("Nicht genug AUDI oder Benzin vorhanden");
            }
            break;
        case 2://BMW
            if(this.bMWStock>=1 && this.gasStockLiters>=Vehicle.TANK_SIZE_TRUCK){
                this.bMWStock = this.bMWStock -1;

            } else {
                System.err.println("Nicht genug BMW oder Benzin vorhanden");
            }
            break;
        case 3://MERCEDES
            if (this.mercedesStock>=1 && this.gasStockLiters>=Vehicle.TANK_SIZE_PASSENGER_CAR){
                this.mercedesStock = this.mercedesStock - 1;

            } else {
                System.err.println("Nicht genug Mercedes oder Benzin vorhanden");
            }
            break;
        case 4://OPEL
            if(this.opelStock>=1 && this.gasStockLiters>=Vehicle.TANK_SIZE_TRUCK){
                this.opelStock = this.opelStock -1;


            } else {
                System.err.println("Nicht genug Opel oder Benzin vorhanden");
            }
            break;
        default: soldVehicle=null;

            break;
        }
        }
}
这是主课

public abstract class CarTrader {

public static final float CAPACITY_DIESEL_LITERS = 350.f;
public static final float CAPACITY_GAS_LITERS = 180.f;
public static final int CAPACITY_PASSENGER_CARS = 15;
public static final int CAPACITY_TRUCKS = 8;


float gasStockLiters=180.f;
float dieselStockLiters=250.f;
int passengerCarsStock=15;
int trucksStock=5;

int mANStock=4;
int scaniaStock=4;
int audiStock=4;
int bMWStock=4;
int opelStock=4;
int mercedesStock=3;

    public Vehicle sellVehicle(byte vehicleType){

Vehicle soldVehicle=null;


switch (vehicleType){
case VehicleType.TRUCK: 

        trucksStock = trucksStock - 1;
        dieselStockLiters = dieselStockLiters - Vehicle.TANK_SIZE_TRUCK;
        soldVehicle = new Vehicle(VehicleType.TRUCK);
        System.out.println("Fahrzeug(e) erfolgreich verkauft");
break;

case VehicleType.PASSENGER_CAR:

        passengerCarsStock = passengerCarsStock - 1;
        gasStockLiters = gasStockLiters - Vehicle.TANK_SIZE_PASSENGER_CAR;
        soldVehicle = new Vehicle(VehicleType.PASSENGER_CAR);
        System.out.println("Fahrzeug(e) erfolgreich verkauft");     
break;
}
    return soldVehicle;
}

类中没有构造函数。 超级(品牌)。。。。这不是一个超级构造函数调用。。相反,它是一个超级方法调用。
将PassengerCarTrader中的“sellCar(int品牌)”重命名为sellVehicle(字节vehicleType)。。。那么super可能会在您的代码中工作。。。。。pont is…super在您的情况下,只有当父类的方法名与子类的方法名相同时,pont is…super才会起作用,您在子类中调用super时,代码中唯一的
super

super(品牌)
sellCar
方法中。这不是构造函数。对于下一次:请始终包含确切的编译器错误或堆栈跟踪。