Спасибо за всех вас. На самом деле кто-то поместил патч для этого класса, который нарушил правильное поведение. Наконец, я нашел это, проверив загрузчик классов. Простите :)Метод переопределения Java не работает
Здесь public class Son
расширяет public class Parent
расширяет public class GrandParent
В Родитель, этот метод переопределяет GrandParent:
@Override
public String getSomething() {
return "blabla";
}
В Сына, тот же метод переопределяет Родитель:
@Override
public String getSomething() {
return null;
}
Странно, что когда я запускаю getSomething() объявления объекта ed как GrandParent и построенный как Son, он переходит в код родителя и возвращает «blabla» вместо null.
Кто-нибудь видел эту проблему раньше? Может ли кто-нибудь дать объяснение по этому поводу? Благодарю.
Вы уверены, что вы вызываете этот метод для экземпляра Сына? – Eran
Можете ли вы показать нам, как вы их реализуете? класс, реализующий «Parent» –
Да, я уверен, и я ясно вижу, что это сын в DEBUG. – BMWCMW