logo

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:

  1. Razred (lahko je abstrakten ali konkreten).
  2. 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');} }; 
  1. Razred je ustvarjen, vendar njegovo ime določi prevajalnik, ki razširi razred Person in zagotovi implementacijo metode eat().
  2. 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');} }; 
  1. Razred je ustvarjen, vendar njegovo ime določi prevajalnik, ki implementira vmesnik Eatable in zagotavlja implementacijo metode eat().
  2. 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');} }