【问题标题】:Java returns error "Cannot instantiate the type" [duplicate]Java返回错误“无法实例化类型”[重复]
【发布时间】:2015-05-19 04:58:00
【问题描述】:

我在尝试初始化新对象时收到此错误消息。

Cannot instantiate the type Car

我的代码

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
    }
}

汽车.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;
    }

}

【问题讨论】:

  • 你不能实例化一个抽象类。但是,您可以创建抽象类的子类并实例化它。
  • abstract 关键字移至Car 类,因为抽象类无法实例化。

标签: java


【解决方案1】:

Car 是一个抽象类,您不能创建它的实例。

public abstract class Car implements Automobile

你可以做类似的事情

public class FordFocus extends Car 

请记住,您将需要调用超级构造函数,但随后您将能够创建 FordFocus 汽车类型的实例

【讨论】:

    【解决方案2】:

    您的类Car 是一个抽象类,您不能创建抽象类的实例。

    解决方案 1
    相反,您需要创建一个扩展您的类 Car 的具体类,然后您可以创建该具体类的实例。

    解决方案 2
    从您的 Car 类声明中删除抽象(但我认为您不想这样做)。

    【讨论】:

      【解决方案3】:

      Documentation 声明

      抽象类是被声明为抽象的类——它可能包含也可能不包含抽象方法。抽象类不能被实例化,但可以被子类化。

      所以支持引用Car car,但不支持对象new Car();

      【讨论】:

        猜你喜欢
        • 2014-03-16
        • 2022-01-19
        • 1970-01-01
        • 2020-07-24
        • 2011-12-19
        • 2023-02-10
        • 1970-01-01
        • 2013-09-28
        • 2018-09-26
        相关资源
        最近更新 更多