Могут ли переменные быть абстрактными
в Java? Поддерживает ли конструктор абстрактные
переменные? Я не уверен, но думаю, что конструктор поддерживает статические переменные. Пожалуйста, проясните мои сомнения.
В java только классы и методы могут быть абстрактными. Объявления переменных не могут. Однако вы можете иметь объявления переменных, типы которых являются абстрактными. См. пример:
public abstract class MyClass { // allowed
public abstract myMethod(); // allowed
public MyClass instance; // allowed
public abstract MyClass instance; // NOT ALLOWED!!
}
В спецификации языка перечислены 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
не разрешено для объявления переменных.