Une chose curieuse se produit en Java lorsque vous utilisez une classe abstraite pour implémenter une interface: certaines méthodes de l'interface peuvent être complètement manquantes (c'est-à-dire qu'aucune déclaration abstraite ou implémentation réelle n'est présente), mais le compilateur ne se plaint pas.
Par exemple, étant donné l'interface:
public interface IAnything {
void m1();
void m2();
void m3();
}
la classe abstraite suivante est joyeusement compilée sans avertissement ni erreur:
public abstract class AbstractThing implements IAnything {
public void m1() {}
public void m3() {}
}
Pouvez-vous expliquer pourquoi?
:w
un des fichiers.