logo

Java Anonymní vnitřní třída

Anonymní vnitřní třída Java je vnitřní třída bez jména, pro kterou je vytvořen pouze jeden objekt. Anonymní vnitřní třída může být užitečná při vytváření instance objektu s určitými „vychytávkami“, jako je přetížení metod třídy nebo rozhraní, aniž byste museli třídu skutečně podtřídu.

npm vymazat mezipaměť

Jednoduše řečeno, třída, která nemá jméno, je v Javě známá jako anonymní vnitřní třída. Mělo by se použít, pokud musíte přepsat metodu třídy nebo rozhraní. Vnitřní třídu Java Anonymous lze vytvořit dvěma způsoby:

  1. Třída (může být abstraktní nebo konkrétní).
  2. Rozhraní

Příklad anonymní vnitřní třídy Java pomocí třídy

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(); } } 
Otestujte to hned

Výstup:

rychlé řazení java
 nice fruits 

Vnitřní fungování daného kódu

 Person p=new Person(){ void eat(){System.out.println('nice fruits');} }; 
  1. Třída je vytvořena, ale o jejím názvu rozhoduje kompilátor, který rozšiřuje třídu Person a zajišťuje implementaci metody eat().
  2. Vytvoří se objekt třídy Anonymous, na který se odkazuje 'p', referenční proměnná typu Osoba.

Interní třída generovaná kompilátorem

 import java.io.PrintStream; static class TestAnonymousInner extends Person { TestAnonymousInner(){} void eat() { System.out.println('nice fruits'); } } 

Příklad anonymní vnitřní třídy Java pomocí rozhraní

 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(); } } 
Otestujte to hned

Výstup:

 nice fruits 

Vnitřní fungování daného kódu

Za tímto kódem plní dva hlavní úkoly:

 Eatable p=new Eatable(){ void eat(){System.out.println('nice fruits');} }; 
  1. Třída je vytvořena, ale o jejím názvu rozhoduje kompilátor, který implementuje rozhraní Eatable a zajišťuje implementaci metody eat().
  2. Vytvoří se objekt třídy Anonymous, na který se odkazuje 'p', referenční proměnná typu Eatable.

Interní třída generovaná kompilátorem

 import java.io.PrintStream; static class TestAnonymousInner1 implements Eatable { TestAnonymousInner1(){} void eat(){System.out.println('nice fruits');} }