logo

Java Anonym indre klasse

Java anonym indre klasse er en indre klasse uten navn og som bare et enkelt objekt er opprettet for. En anonym indre klasse kan være nyttig når du lager en forekomst av et objekt med visse 'ekstra'er, for eksempel overbelastningsmetoder for en klasse eller grensesnitt, uten å faktisk underklassifisere en klasse.

Med enkle ord er en klasse som ikke har noe navn kjent som en anonym indre klasse i Java. Den bør brukes hvis du må overstyre en metode for klasse eller grensesnitt. Java Anonymous indre klasse kan opprettes på to måter:

  1. Klasse (kan være abstrakt eller konkret).
  2. Grensesnitt

Java anonym indre klasse eksempel ved bruk av klasse

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(); } } 
Test det nå

Produksjon:

 nice fruits 

Intern arbeid av gitt kode

 Person p=new Person(){ void eat(){System.out.println('nice fruits');} }; 
  1. En klasse opprettes, men navnet bestemmes av kompilatoren, som utvider Person-klassen og gir implementeringen av eat()-metoden.
  2. Et objekt av klassen Anonym opprettes som refereres til med 'p', en referansevariabel av typen Person.

Intern klasse generert av kompilatoren

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

Java anonym indre klasse eksempel ved bruk av grensesnitt

 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(); } } 
Test det nå

Produksjon:

strukturer ved hjelp av arrays i c
 nice fruits 

Intern arbeid av gitt kode

Den utfører to hovedoppgaver bak denne koden:

 Eatable p=new Eatable(){ void eat(){System.out.println('nice fruits');} }; 
  1. En klasse er opprettet, men navnet bestemmes av kompilatoren, som implementerer Eatable-grensesnittet og gir implementeringen av eat()-metoden.
  2. Et objekt av klassen Anonym opprettes som refereres til med 'p', en referansevariabel av typen Eatable.

Intern klasse generert av kompilatoren

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