我有一个抽象类:
abstract class Shape {
public String color;
public Shape() {
}
public void setColor(String c) {
color = c;
}
public String getColor() {
return color;
}
public double area() {
return 0;
}
}
它提供了非抽象方法,然后我想像这样初始化它:
Shape object = new Shape();
所以在初始化时,它仍然给我一个错误,但是为什么呢?如果我在类中提供了一个抽象方法,那么可以理解该类无法初始化.在这种情况下,为什么仍然出现错误?任何帮助,将不胜感激
解决方法:
initialization its still giving me an error but why
因为该类是抽象的.无论是否具有抽象方法,抽象类都无法直接实例化.从JLS section 8.1.1.1:
It is a compile-time error if an attempt is made to create an instance of an abstract class using a class instance creation expression (§15.9).
如果您没有任何抽象方法,并且希望能够直接实例化该类,请使该类为非抽象类.使没有抽象方法的类抽象的唯一原因是强制使用具体的子类.
标签:abstract-methods,java,abstract-class
来源: https://codeday.me/bug/20191009/1882790.html