Ok, apprenons de cette façon. J'adhère aux directives de style Java et j'utilise la syntaxe Java. On suppose donc que l'héritage multiple et les templates C++ ne sont pas disponibles.
il n'est pas nécessaire de rendre abstraite la méthode de la classe parente, En POO, vous utilisez le concept de polymorphisme. Vous pouvez utiliser la même méthode de deux ou plusieurs façons différentes. C'est ce qu'on appelle le recouvrement des méthodes.
Prenons un exemple.
public class Animal{
public void makeSound(){
System.out.println("Animal doesn't know how to make sound");
}
}
public class PussyCat extends Animal{
public void makeSound(){
System.out.println("meowwww !!!");
}
public static void main(String args[]){
PussyCat aCat=new PussyCat();
aCat.makeSound();
}
}
ceci imprimera "meowww ! !!" sur l'écran.
mais cela n'implique pas que la méthode makeSound doit être surchargée dans la classe enfant.
Si vous voulez que la classe enfant soit obligée de surcharger les méthodes, il vaut mieux implémenter une interface par la classe.
public Interface audible{
public void makeSound();
}
public class pussyCat implements audible{
// now you must implement the body of makeSound method here
public void makeSound(){
System.out.println("meowwww !!!");
}
public static void main(String args[]){
PussyCat aCat=new PussyCat();
aCat.makeSound();
}
}
ceci imprimera également "meowwww ! !!" sur l'écran.