Notranji razred Java Anonymous
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');} }