Java geeft foutmelding “Kan het type niet instantiëren”

Ik krijg deze foutmelding wanneer ik een nieuw object probeer te initiëren.

Cannot instantiate the type Car

Mijn code

Main.java

public class Main {
    public static void main(String args[]){
        Car car = new Car(4,4,COUNTRY.MALAYSIA, Locale.ENGLISH, "150.00"); //error here
    }
}

Auto.java

public abstract class Car implements Automobile {
    public int wheel;
    public int door;
    public COUNTRY country;
    public Locale locale;
    public String price;
    public Car(int w, int d, COUNTRY c, Locale l, String p){
        this.wheel = w;
        this.door = d;
        this.country = c;
        this.locale = l;
        this.price = p;
    }
}

Antwoord 1, autoriteit 100%

Auto is een abstracte klasse, je kunt er geen instantie van maken.

public abstract class Car implements Automobile

je kunt mogelijk iets doen als

public class FordFocus extends Car 

Houd er rekening mee dat u de superconstructor moet aanroepen, maar dat u dan een instantie van het FordFocus-autotype kunt maken


Antwoord 2, autoriteit 27%

Uw klasse Caris een abstracte klasse en u kunt geen instantie van een abstracte klasse maken.

Oplossing 1
In plaats daarvan moet je een concrete klasse maken die je klasse Caruitbreidt en dan kun je een instantie van die concrete klasse maken.

Oplossing 2
Verwijder abstract uit uw klasseverklaring Car(maar ik denk dat u dat niet wilt doen).


Antwoord 3

Documentationstelt dat

Een abstracte klasse is een klasse die abstract is verklaard – deze kan al dan niet abstracte methoden bevatten. Abstracte klassen kunnen niet worden geïnstantieerd, maar ze kunnen wel worden gesubklasseerd.

Dus referentie Car carwordt ondersteund, maar object new Car();wordt niet ondersteund.

Other episodes