Есть ли абстрактные переменные в Java? - PullRequest
10 голосов
/ 25 августа 2010

в Java какие-нибудь абстрактные переменные есть? Я работал над этими абстрактными переменными в конструкторе. Я не уверен, но думаю, что конструктор поддерживает статические переменные. Просьба прояснить мои сомнения

Ответы [ 3 ]

22 голосов
/ 25 августа 2010

В Java только классы и методы могут быть абстрактными.Объявления переменных не могут.Однако вы можете иметь объявления переменных, типы которых являются абстрактными.Смотрите пример:

public abstract class MyClass { // allowed
   public abstract myMethod(); // allowed
   public MyClass instance; // allowed

   public abstract MyClass instance; // NOT ALLOWED!!
}
10 голосов
/ 25 августа 2010

В спецификации языка перечислены 7 типов переменных:

  1. переменные класса - объявлены как статические в объявлении класса
  2. переменные экземпляра - объявлено в объявлении класса без использования статического ключевого слова
  3. компоненты массива - как i[2], когда мы создаем массив как int[] i= new int[5]
  4. методпараметры - значения аргументов имени, передаваемые методу
  5. параметры конструктора - значения аргументов имени, передаваемые конструктору
  6. параметр обработчика исключений - создается каждый раз, когда исключение перехватывается
  7. локальные переменные - объявляется в блоке ({ }) или для оператора

Вы можете использовать все типы переменных(кроме # 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 недопустимо для объявления переменных.

0 голосов
/ 24 октября 2017

abstract - это модификатор отсутствия доступа в java, применимый для классов, методов, но не переменных.Он используется для достижения абстракции, которая является одним из столпов объектно-ориентированного программирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...