Dans cet exemple je crée une nouvelle classe anonyme à partir de la classe
Object
:
la nouvelle classe anonyme hérite implicitement de la classe
Object
et peut ainsi redéfinir ses méthodes
et peut aussi définir de nouvelles méthodes mais ces nouvelles méthodes seront visibles uniquement dans le code de la classe anonyme.
La raison de cette restriction est due au fait que l'instance créée à partir de la classe anonyme est référée par une variable
dont le type est celui de la classe
Object
et donc le compilateur va se plaindre si vous essayer d'appeler les nouvelles méthodes définies dans la classe anonyme :
Il est possible de définir une classe anonyme comme argument d'une méthode :
Notes :
Le compilateur va créer des fichiers séparés pour chaque classe interne anonyme.
Dans cet exemple le compilateur va créer les fichiers "
.class" suivants :
- MyTest4.class
- MyTest4$1.class
- MyTest4$2.class