Dire que j'ai les classes déclarées comme ceci:Comment appeler la méthode de classe de base?
public abstract class IdentifiableEntity {
public boolean validate() {
return true;
}
}
public class PreferenceCategory extends IdentifiableEntity {
public boolean validate() {
return true;
}
}
Maintenant, disons que j'ai créé la variable PreferenceCategory, et je veux appeler la méthode IdentifiableEntity.validate(), pas la méthode PreferenceCategory.validate() .
j'aurais pensé que je pouvais le faire avec un casting (voir ci-dessous), mais il appelle toujours la méthode surchargée:
PreferenceCategory cat = new PreferenceCategory();
// this calls PreferenceCategory.validate(), not what I want
((IdentifiableEntity)cat).validate();
Est-il possible de le faire?
Ajoutez un appel explicite à la méthode parente. par exemple. validate() {return super.validate(); } – Andreas
Comment le testez-vous puisque la méthode 'validate()' de la base et de la sous-classe retourne 'true'. –
Pouvez-vous s'il vous plaît expliquer le cas d'utilisation de celui-ci? –