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 Car
is 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 Car
uitbreidt 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
Documentation
stelt 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 car
wordt ondersteund, maar object new Car();
wordt niet ondersteund.