logo

Java Anonymous innere Klasse

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:

  1. Klasse (kann abstrakt oder konkret sein).
  2. 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');} }; 
  1. Es wird eine Klasse erstellt, deren Name jedoch vom Compiler festgelegt wird, der die Person-Klasse erweitert und die Implementierung der eat()-Methode bereitstellt.
  2. 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');} }; 
  1. Es wird eine Klasse erstellt, deren Name jedoch vom Compiler festgelegt wird, der die Eatable-Schnittstelle implementiert und die Implementierung der eat()-Methode bereitstellt.
  2. 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');} }