Java anonym innerklass är en inre klass utan namn och för vilken endast ett enda objekt skapas. En anonym inre klass kan vara användbar när man gör en instans av ett objekt med vissa 'extramaterial' såsom överbelastningsmetoder för en klass eller gränssnitt, utan att faktiskt behöva underklassa en klass.
Med enkla ord är en klass som inte har något namn känd som en anonym inre klass i Java. Den bör användas om du måste åsidosätta en metod för klass eller gränssnitt. Java Anonymous inre klass kan skapas på två sätt:
- Klass (kan vara abstrakt eller konkret).
- Gränssnitt
Java anonymt inre klassexempel med klass
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(); } }Testa det nu
Produktion:
nice fruits
Intern bearbetning av given kod
Person p=new Person(){ void eat(){System.out.println('nice fruits');} };
- En klass skapas, men dess namn bestäms av kompilatorn, som utökar klassen Person och tillhandahåller implementeringen av metoden eat().
- Ett objekt av klassen Anonym skapas som refereras till med 'p', en referensvariabel av typen Person.
Intern klass genererad av kompilatorn
import java.io.PrintStream; static class TestAnonymousInner extends Person { TestAnonymousInner(){} void eat() { System.out.println('nice fruits'); } }
Java anonymt inre klassexempel med gränssnitt
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(); } }Testa det nu
Produktion:
java jämförbar
nice fruits
Intern bearbetning av given kod
Den utför två huvuduppgifter bakom denna kod:
Eatable p=new Eatable(){ void eat(){System.out.println('nice fruits');} };
- En klass skapas, men dess namn bestäms av kompilatorn, som implementerar Eatable-gränssnittet och tillhandahåller implementeringen av eat()-metoden.
- Ett objekt av klassen Anonym skapas som refereras till med 'p', en referensvariabel av typen Eatable.
Intern klass genererad av kompilatorn
import java.io.PrintStream; static class TestAnonymousInner1 implements Eatable { TestAnonymousInner1(){} void eat(){System.out.println('nice fruits');} }