Абстрактные переменные в Java? - PullRequest
43 голосов
/ 03 марта 2010

Я приехал из c #, где это было легко и возможно.

У меня есть этот код:

public abstract class clsAbstractTable {

    public abstract String TAG;
    public abstract void init();

}

но Eclipse говорит мне, что я использую недопустимый модификатор.

У меня есть этот класс:

public class clsContactGroups extends clsAbstractTable {


}

Я хочу, чтобы переменная и метод были определены таким образом, чтобы Eclipse подсказывал мне , у меня есть нереализованные абстрактные переменные и методы.

Как мне определить мой абстрактный класс, чтобы мне предлагалось реализовать аннотации?

РЕДАКТИРОВАТЬ 1

Я создам разные классы для разных таблиц БД. Каждый класс должен иметь свою собственную переменную TABLENAME, без исключения. Я должен убедиться, что эта переменная является статической каждый раз, когда я создаю новый класс, который расширяет абстрактный класс.

Тогда в абстрактном классе у меня будет метод, например: init ();

Если в этом методе init () я вызываю TABLENAME, он должен получить значение из подкласса.

что-то вроде этого тоже должно сработать

String tablename=(clsAbstract)objItem.TABLENAME;
// where objItem can be any class that extended clsAbstract;

РЕДАКТИРОВАТЬ 2

Я хочу, чтобы константа (статическая) была определена в каждом классе, имя которого определено абстрактно.

  • Я определяю переменную TABLENAME в абстрактном виде, но значение не указано.
  • Я создаю clsContactGroups, мне нужно предложить реализовать TABLENAME, вот где можно получить некоторые данные. например: TABLENAME = "contactgroups";
  • Я создаю второй класс clsContacts, мне нужно предложить реализовать TABLENAME, вот где можно получить некоторые данные. например: TABLENAME = "contacts";
    и т.д ...

Ответы [ 11 ]

0 голосов
/ 03 марта 2010

Нет, Java не поддерживает абстрактные переменные. В этом тоже нет особого смысла.

Какое конкретное изменение в "реализации" переменной вы ожидаете от подкласса?

Когда у меня есть переменная abstract String в базовом классе, что должен делать подкласс, чтобы сделать его неабстрактным?

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