Скажем, у меня есть классы, объявленные как это:Как вызвать метод базового класса?
public abstract class IdentifiableEntity {
public boolean validate() {
return true;
}
}
public class PreferenceCategory extends IdentifiableEntity {
public boolean validate() {
return true;
}
}
Теперь, скажем, я создал PreferenceCategory переменную, и я хочу, чтобы вызвать метод IdentifiableEntity.validate(), не метод PreferenceCategory.validate() ,
Я бы подумал, что я мог сделать это с броском (смотри ниже), но он по-прежнему вызывает перекрытый метод:
PreferenceCategory cat = new PreferenceCategory();
// this calls PreferenceCategory.validate(), not what I want
((IdentifiableEntity)cat).validate();
Есть ли способ сделать это?
добавить явный вызов родительскому методу. например validate() {return super.validate(); } – Andreas
Как вы его протестируете, так как метод 'validate()' базы и подкласса возвращает 'true'. –
Не могли бы вы объяснить его вариант использования? –