Anonimni notranji razred Java je notranji razred brez imena in za katerega je ustvarjen samo en objekt. Anonimni notranji razred je lahko uporaben pri izdelavi primerka predmeta z določenimi 'dodatki', kot je preobremenitev metod razreda ali vmesnika, ne da bi bilo treba razred dejansko uvrstiti v podrazred.
Preprosto povedano, razred brez imena je v Javi znan kot anonimni notranji razred. Uporabite ga, če morate preglasiti metodo razreda ali vmesnika. Notranji razred Java Anonymous je mogoče ustvariti na dva načina:
- Razred (lahko je abstrakten ali konkreten).
- Vmesnik
Primer anonimnega notranjega razreda Java z uporabo razreda
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(); } }Preizkusite zdaj
Izhod:
nice fruits
Notranje delovanje dane kode
Person p=new Person(){ void eat(){System.out.println('nice fruits');} };
- Razred je ustvarjen, vendar njegovo ime določi prevajalnik, ki razširi razred Person in zagotovi implementacijo metode eat().
- Ustvari se objekt razreda Anonymous, na katerega se sklicuje 'p', referenčna spremenljivka tipa Person.
Notranji razred, ki ga ustvari prevajalnik
import java.io.PrintStream; static class TestAnonymousInner$1 extends Person { TestAnonymousInner$1(){} void eat() { System.out.println('nice fruits'); } }
Primer anonimnega notranjega razreda Java z uporabo vmesnika
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(); } }Preizkusite zdaj
Izhod:
nice fruits
Notranje delovanje dane kode
Za to kodo opravlja dve glavni nalogi:
Eatable p=new Eatable(){ void eat(){System.out.println('nice fruits');} };
- Razred je ustvarjen, vendar njegovo ime določi prevajalnik, ki implementira vmesnik Eatable in zagotavlja implementacijo metode eat().
- Ustvari se objekt razreda Anonymous, na katerega se sklicuje 'p', referenčna spremenljivka tipa Eatable.
Notranji razred, ki ga ustvari prevajalnik
import java.io.PrintStream; static class TestAnonymousInner1$1 implements Eatable { TestAnonymousInner1$1(){} void eat(){System.out.println('nice fruits');} }