Java 无法实例化抽象类

Java 无法实例化抽象类,java,abstract-class,Java,Abstract Class,我在一年前创建了这个point程序,一年前它运行良好。现在我必须重新审视它,在编译并尝试运行它时,我遇到了一个错误,即抽象类无法实例化。我在网上做了一些调查,发现Java的一些更新或排序使得使用PointClass point1=new PointClass()的方法成为可能不再有效,将通过一个错误 在尝试使用驱动程序实例化类时,我还没有找到修复错误的答案。我还看到,为了现在使用抽象类,必须存在一个子类。问题是,由于程序的指令,我不能使用子类。只有驱动程序和point类 该程序非常简单,只需声明

我在一年前创建了这个point程序,一年前它运行良好。现在我必须重新审视它,在编译并尝试运行它时,我遇到了一个错误,即抽象类无法实例化。我在网上做了一些调查,发现Java的一些更新或排序使得使用
PointClass point1=new PointClass()的方法成为可能不再有效,将通过一个错误

在尝试使用驱动程序实例化类时,我还没有找到修复错误的答案。我还看到,为了现在使用抽象类,必须存在一个子类。问题是,由于程序的指令,我不能使用子类。只有驱动程序和point类

该程序非常简单,只需声明一些点并从抽象类调用它们,即可打印到屏幕上。我需要一些帮助来找出更新后的方法,使其在没有实例化错误的情况下再次工作

点类

public abstract class PointClass {
    private int pointX;
    private int pointY;

    //set instance variables
    public PointClass() { this.pointX = 10; this.pointY = 10; }

    public PointClass(int x, int y){ this.pointX = x; this.pointY = y; }

    //make getters and setters
    public void setPointX(int x) { this.pointX = x; }
    public void setPointY(int y) { this.pointY = y; }
    public int getPointX() { return this.pointX; }
    public int getPointY() { return this.pointY; }

    //make string for format with driver
    public String toString() { return "x = " + this.pointX + " y = " + this.pointY; }

}
司机

public class PointTest {
    public static void main(String[] args){
        System.out.println();

        PointClass point1 = new PointClass();         //set point1 as no argument 
        PointClass point2 = new PointClass(11, 24);  // set point2 as argument with x and y

        System.out.println("Point1: " + point1);  //display point1 from toString method
        System.out.println();
        System.out.println("Point2: " + point2); //display point2 from toString method
        System.out.println("---------------------");
    }
}

最好的办法是删除
abstract
关键字。没有必要<代码>点
没有抽象方法

如果出于任何原因不能这样做,可以通过在每次实例化后添加大括号来创建内联匿名类:

PointClass point1 = new PointClass() { };
PointClass point2 = new PointClass(11, 24) { };

顺便说一句,你所说的这个曾经有用的说法是不正确的。直接实例化抽象类是不可能的。这实际上是关键字的全部要点,以防止类被实例化。

在Java中实例化
抽象类是不可能的。将
类定义为
抽象
也没有意义,因为它没有任何抽象方法。请阅读错误消息。你明白什么是
abstract
吗?删除关键字
abstract
它没用。本程序的说明是使用abstract关键字,生成一个抽象类,然后从中调用。它在一年前就成功了,没有任何错误。无论哪种方式添加{}都有帮助,感谢您的输入。