Die anonyme innere Java-Klasse ist eine innere Klasse ohne Namen, für die nur ein einziges Objekt erstellt wird. Eine anonyme innere Klasse kann nützlich sein, wenn eine Instanz eines Objekts mit bestimmten „Extras“ erstellt wird, z. B. dem Überladen von Methoden einer Klasse oder Schnittstelle, ohne dass eine Klasse tatsächlich in eine Unterklasse umgewandelt werden muss.
Mit einfachen Worten: Eine Klasse ohne Namen wird in Java als anonyme innere Klasse bezeichnet. Es sollte verwendet werden, wenn Sie eine Methode einer Klasse oder Schnittstelle überschreiben müssen. Die innere Java Anonymous-Klasse kann auf zwei Arten erstellt werden:
- Klasse (kann abstrakt oder konkret sein).
- Schnittstelle
Beispiel für eine anonyme innere Java-Klasse mit der Klasse
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(); } }Testen Sie es jetzt
Ausgabe:
nice fruits
Interne Funktionsweise des angegebenen Codes
Person p=new Person(){ void eat(){System.out.println('nice fruits');} };
- Es wird eine Klasse erstellt, deren Name jedoch vom Compiler festgelegt wird, der die Person-Klasse erweitert und die Implementierung der eat()-Methode bereitstellt.
- Es wird ein Objekt der Klasse „Anonymous“ erstellt, auf das durch „p“, eine Referenzvariable vom Typ „Person“, verwiesen wird.
Vom Compiler generierte interne Klasse
import java.io.PrintStream; static class TestAnonymousInner extends Person { TestAnonymousInner(){} void eat() { System.out.println('nice fruits'); } }
Beispiel für eine anonyme innere Java-Klasse mit Schnittstelle
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(); } }Testen Sie es jetzt
Ausgabe:
Amrita Rao Schauspielerin
nice fruits
Interne Funktionsweise des angegebenen Codes
Hinter diesem Code werden zwei Hauptaufgaben ausgeführt:
Eatable p=new Eatable(){ void eat(){System.out.println('nice fruits');} };
- Es wird eine Klasse erstellt, deren Name jedoch vom Compiler festgelegt wird, der die Eatable-Schnittstelle implementiert und die Implementierung der eat()-Methode bereitstellt.
- Es wird ein Objekt der Klasse Anonymous erstellt, auf das durch „p“, eine Referenzvariable vom Typ Eatable, verwiesen wird.
Vom Compiler generierte interne Klasse
import java.io.PrintStream; static class TestAnonymousInner1 implements Eatable { TestAnonymousInner1(){} void eat(){System.out.println('nice fruits');} }