logo

Java Anonym indre klasse

Java anonym indre klasse er en indre klasse uden navn, og for hvilken der kun oprettes et enkelt objekt. En anonym indre klasse kan være nyttig, når du laver en forekomst af et objekt med visse 'ekstra'er', såsom overbelastningsmetoder for en klasse eller grænseflade, uden faktisk at skulle underklassificere en klasse.

Med enkle ord er en klasse, der ikke har noget navn, kendt som en anonym indre klasse i Java. Det skal bruges, hvis du skal tilsidesætte en klasse- eller grænseflademetode. Java Anonymous indre klasse kan oprettes på to måder:

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

Java anonym indre klasse eksempel ved hjælp af 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 nu

Produktion:

 nice fruits 

Intern bearbejdning af given kode

 Person p=new Person(){ void eat(){System.out.println('nice fruits');} }; 
  1. En klasse oprettes, men dens navn bestemmes af compileren, som udvider Person-klassen og giver implementeringen af ​​eat()-metoden.
  2. Et objekt af klassen Anonym oprettes, der refereres til med 'p', en referencevariabel af typen Person.

Intern klasse genereret af compileren

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

Java anonym indre klasse eksempel ved hjælp af grænseflade

 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 nu

Produktion:

springe listen over
 nice fruits 

Intern bearbejdning af given kode

Den udfører to hovedopgaver bag denne kode:

 Eatable p=new Eatable(){ void eat(){System.out.println('nice fruits');} }; 
  1. En klasse oprettes, men dens navn bestemmes af compileren, som implementerer Eatable-grænsefladen og leverer implementeringen af ​​eat()-metoden.
  2. Et objekt af klassen Anonym oprettes, der refereres til med 'p', en referencevariabel af typen Eatable.

Intern klasse genereret af compileren

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