Не могу понять, почему мой код возвращает 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.