log4j.logger.org.hibernate=info
<logger name="org.hibernate">
<level value="info"/>
</logger>
A a2 = new B();
означает что ты помещаешь объект дочернего класса в переменную родительского. Так можно и зачастую нужно, когда ты не знаешь точно какой из наследников будет использоваться или хочешь абстрагироваться от конкретной реализации.a.sum(1,2)
вызывает метод, переопределенный в дочернем классе. Т. к. он не имеет модификатора private, это работает.yourColumn.setOnEditCommit(
new EventHandler<CellEditEvent<YourClass, String>>() {
@Override
public void handle(CellEditEvent<YourClass, String> t) {
((YourClass) t.getTableView().getItems().get(
t.getTablePosition().getRow())
).setPropertyWhatYouNeed(t.getNewValue());
}
}
);
Alert alert = new Alert(AlertType.CONFIRMATION);
alert.setTitle("Запуск программы");
alert.setHeaderText("Вы действительно хотите запустить программу?");
alert.setContentText("Нажмите ОК для запуска и Cancel для отмены");
Optional<ButtonType> option = alert.showAndWait();
if (option.get() == null || option.get() == ButtonType.CANCEL) {
// закрываешь программу
} else if (option.get() == ButtonType.OK) {
// запускаешь
}