Java 是什么导致了抽象类中的错误?

Java 是什么导致了抽象类中的错误?,java,abstract,Java,Abstract,有人能解释一下第一行的错误吗?它能修好吗 即使上面的行是固定的,第二行仍然会生成错误。如何修复第二行?您不能实例化一个抽象类,这是您使用新Shape()所做的 抽象类是您构建、扩展和创建具体类的基础,您将能够实例化这些类。三个错误: 1) 公共抽象形状{应该是公共抽象类形状{ 2) shapes.add(new Square());//第一行,因为形状是抽象的,无法实例化 3) ((Square)shapes.get(0)).draw();//第二行;因为shapes.get(0)返回一个对象实

有人能解释一下第一行的错误吗?它能修好吗


即使上面的行是固定的,第二行仍然会生成错误。如何修复第二行?

您不能实例化一个抽象类,这是您使用
新Shape()所做的

抽象类是您构建、扩展和创建具体类的基础,您将能够实例化这些类。

三个错误:

1)
公共抽象形状{
应该是
公共抽象类形状{

2)
shapes.add(new Square());//第一行
,因为形状是抽象的,无法实例化


3)
((Square)shapes.get(0)).draw();//第二行;
因为shapes.get(0)返回一个对象实例,因此需要对Square进行强制转换。

实际上有四个错误:

1)
公共抽象形状{
应该是
公共抽象类形状{

2)
shapes.add(new Shape());//第一行
,因为形状是抽象的,无法实例化

3)
shapes.add(new Square());//第一行
我们不能在
静态
范围中使用
非静态
方法,除非您将其标记为静态


4)
((方形)shapes.get(0)).draw();//第二行;
因为shapes.get(0)返回一个对象实例,因此需要对其进行转换。

1)如果出现错误,请始终将错误消息放在帖子中。2)您不能实例化抽象类。@Korashen您不能实例化它,因为它是抽象的,它不是抽象的,因为您不能实例化它,但要修复它,请替换新形状()使用new Square()@Stultuske当然!我猜我的措词错了。为了避免进一步的错误,我从评论中删除了这一部分。谢谢你的提示!
shapes.add(new Square());
可以。
public abstract Shape {
    public abstract void draw();
    public static void main(String[] args) { 
        ArrayList shapes = new ArrayList(); 
        shapes.add(new Shape()); // Line ONE
        shapes.get(0).draw(); // Line TWO
    } 

    public class Square extends Shape { 
        public void draw () {
            System.out.println(“The square is being drawn.”);
        }
}