在java中有任何抽象变量吗?我在构造函数中使用这个抽象变量我很确定但是我认为构造函数支持静态变量.pls澄清了我的怀疑
答案 0 :(得分:22)
在java中,只有类和方法可以是抽象的。变量声明不能。但是,您可以使用其类型为抽象的变量声明。见例:
public abstract class MyClass { // allowed
public abstract myMethod(); // allowed
public MyClass instance; // allowed
public abstract MyClass instance; // NOT ALLOWED!!
}
答案 1 :(得分:9)
语言规范列出了7种类型的变量:
i[2]
int[] i= new int[5]
一样
{ }
)或声明中声明您可以在构造函数中使用所有变量类型(#4除外):
class Demo {
static int demo1 = 0; // class variable
int[] demo2 = new int[5]; // instance variable
Demo(int demo3) { // constructor parameter
try {
int demo4 = // local variable
demo2[2]; // array component
} catch(RuntimeException demo5) { // exception-handler parameter
}
demo2 = new int[]{Demo.demo1}; // using class and instance variable
// in a constructor
}
int method(int demo6) { // method parameter
}
}
变量声明不允许使用abstract
关键字。
答案 2 :(得分:0)
abstract是java中的非访问修饰符,适用于类,方法但不适用于变量。它用于实现抽象,这是面向对象编程的支柱之一。