如何实例化抽象类的子类?它给出了错误——没有抽象类类型的封闭实例是可访问的。无论我如何交换值(value)观。我知道我不能使用机动车辆,因为抽象类无法实例化......
public class abstractclass {
public static void main(String args[]){
Car car1 = new Car();
}
abstract class MotorVehicle
{
int fuel;
int getFuel()
{
return this.fuel;
}
abstract void run();
}
class Car extends MotorVehicle
{
void run()
{
System.out.print("Wrroooooooom");
}
}
}
最佳答案
它不会让您实例化它们,因为您已将它们声明为内部类。在类声明之前添加 static
,您就可以做到这一点:
class Outer {
class Inner {
}
static class Nested {
}
}
如果嵌套类是内部(非静态),则它属于外部类的实例,而不是外部类本身。内部类需要外部类的实例才能实例化。静态嵌套类则不然。
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
Outer.Nested nested = new Outer.Nested();
参见Nested Classes教程。这就是“无封闭实例”消息的含义。你是对的,抽象类不能直接实例化,但 Car
不是抽象的。
关于java - 实例化抽象类的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20835705/