La classe interne anonyme Java est une classe interne sans nom et pour laquelle un seul objet est créé. Une classe interne anonyme peut être utile lors de la création d'une instance d'un objet avec certains « extras » tels que la surcharge des méthodes d'une classe ou d'une interface, sans avoir à sous-classer une classe.
En termes simples, une classe qui n’a pas de nom est appelée classe interne anonyme en Java. Il doit être utilisé si vous devez remplacer une méthode de classe ou d'interface. La classe interne Java Anonyme peut être créée de deux manières :
- Cours (peut être abstrait ou concret).
- Interface
Exemple de classe interne anonyme Java utilisant la classe
TestAnonymousInner.java
abstract class Person{ abstract void eat(); } class TestAnonymousInner{ public static void main(String args[]){ Person p=new Person(){ void eat(){System.out.println('nice fruits');} }; p.eat(); } }Testez-le maintenant
Sortir:
nice fruits
Fonctionnement interne d'un code donné
Person p=new Person(){ void eat(){System.out.println('nice fruits');} };
- Une classe est créée, mais son nom est décidé par le compilateur, qui étend la classe Person et fournit l'implémentation de la méthode eat().
- Un objet de la classe Anonyme est créé et référencé par « p », une variable de référence de type Personne.
Classe interne générée par le compilateur
import java.io.PrintStream; static class TestAnonymousInner$1 extends Person { TestAnonymousInner$1(){} void eat() { System.out.println('nice fruits'); } }
Exemple de classe interne anonyme Java utilisant l'interface
interface Eatable{ void eat(); } class TestAnnonymousInner1{ public static void main(String args[]){ Eatable e=new Eatable(){ public void eat(){System.out.println('nice fruits');} }; e.eat(); } }Testez-le maintenant
Sortir:
nice fruits
Fonctionnement interne d'un code donné
Il effectue deux tâches principales derrière ce code :
Eatable p=new Eatable(){ void eat(){System.out.println('nice fruits');} };
- Une classe est créée, mais son nom est décidé par le compilateur, qui implémente l'interface Eatable et fournit l'implémentation de la méthode eat().
- Un objet de la classe Anonyme est créé et référencé par 'p', une variable de référence de type Eatable.
Classe interne générée par le compilateur
import java.io.PrintStream; static class TestAnonymousInner1$1 implements Eatable { TestAnonymousInner1$1(){} void eat(){System.out.println('nice fruits');} }