Внучат instanceof Parent возвращает false - PullRequest
0 голосов
/ 06 января 2020

Не могу понять, почему мой код возвращает false при проверке отношений между классами ниже.

public abstract class Controller {
    public Controller(){};
    public abstract void init();
}

public class OperationController<T> extends Controller {
    public OperationController(){};
    public void init() {
    // here something happens
    };
}

public class DailyOperationController extends OperationController<DailyOperation> {
    public DailyOperationController (){};
    public void init() {
    // here something happens
    };
}

Я проверяю, является ли данный класс экземпляром класса Controller, а затем вызываю метод init ():

//somewhere in Main class
    FXMLLoader loader = new FXMLLoader(Main.class.getClassLoader().getResource(panel.getFxmlPath()));
    if(loader.getController() instanceof Controller)
        ((Controller) loader.getController()).init();
//somewhere in Main class

If-условие возвращает true при проверке объекта OperationController и false при проверке объекта DailyOperationController. Я подозреваю, что главная проблема заключается в моей неспособности понять концепцию абстрактного ключевого слова, поэтому я буду благодарен за любую помощь. Я хочу иметь возможность инициировать либо объект OperationController, либо DailyOperationController.

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