Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Как реализовать такое взаимодействие?


Автор: unkis 30.12.2009, 12:54
Ребята помогите с следующей реализацией.

Есть какое-то количество классов, скажем 5.

В каждом из классов нужно в конструкторе делать следующую проверку и вызывать соответственный метод:
Код

if(rule==ADMIN){
 initAdmin();
} else if (rule==USER){
 initUser();
}
...



то есть каждий класс должен содержать методы 
Код

 initAdmin();
 initUser();


реализация у каждого класса естественно своя.

Вот и вопрос: можно ли как-нибудь сделать Базовый абстрактный класс, который унаследуют все 5 классов и в нем реализовать проверку в конструкторе, но чтобы методы вызывались у классов наследников?

Заранее спасибо.





Автор: jk1 30.12.2009, 13:16
Можно. Пример:
Код

public abstract class SuperClass {

    public SuperClass(){
        doSomeWork();
    }

    abstract protected void doSomeWork();
}
Код

public class SubClass extends SuperClass {

    public SubClass() {
        super();
    }

    @Override
    protected void doSomeWork() {
        System.out.println("Doing some work...");
    }

    public static void main(String[] args){
        new SubClass();
    }
}

Автор: unkis 30.12.2009, 13:38
sps

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)