Анонимен клас на Java

В този урок ще научите за анонимните класове в Java с помощта на примери.

В Java клас може да съдържа друг клас, известен като вложен клас. Възможно е да създадете вложен клас, без да давате никакво име.

Вложен клас, който няма никакво име, е известен като анонимен клас.

Анонимен клас трябва да бъде дефиниран в друг клас. Следователно той е известен и като анонимен вътрешен клас. Синтаксисът му е:

 class outerClass ( // defining anonymous class object1 = new Type(parameterList) ( // body of the anonymous class ); ) 

Анонимните класове обикновено разширяват подкласовете или изпълняват интерфейси.

Тук Type може да бъде

  1. суперклас, който се разширява анонимен клас
  2. интерфейс, който прилага анонимен клас

Горният код създава обект object1от анонимен клас по време на изпълнение.

Забележка: Анонимните класове са дефинирани в израз. И така, точката с запетая се използва в края на анонимните класове, за да посочи края на израза.

Пример 1: Анонимен клас, удължаващ клас

 class Polygon ( public void display() ( System.out.println("Inside the Polygon class"); ) ) class AnonymousDemo ( public void createClass() ( // creation of anonymous class extending class Polygon Polygon p1 = new Polygon() ( public void display() ( System.out.println("Inside an anonymous class."); ) ); p1.display(); ) ) class Main ( public static void main(String() args) ( AnonymousDemo an = new AnonymousDemo(); an.createClass(); ) ) 

Изход

 Вътре в анонимен клас. 

В горния пример създадохме клас Полигон. Той има един метод display().

След това създадохме анонимен клас, който разширява класа Полигон и замества display()метода.

Когато стартираме програмата, се създава обект p1 от анонимния клас. След това обектът извиква display()метода на анонимния клас.

Пример 2: Анонимен клас, реализиращ интерфейс

 interface Polygon ( public void display(); ) class AnonymousDemo ( public void createClass() ( // anonymous class implementing interface Polygon p1 = new Polygon() ( public void display() ( System.out.println("Inside an anonymous class."); ) ); p1.display(); ) ) class Main ( public static void main(String() args) ( AnonymousDemo an = new AnonymousDemo(); an.createClass(); ) ) 

Изход

 Вътре в анонимен клас. 

В горния пример създадохме анонимен клас, който реализира Polygonинтерфейса.

Предимства на анонимните класове

В анонимните класове обектите се създават винаги, когато са необходими. Тоест обектите се създават за изпълнение на някои специфични задачи. Например,

 Object = new Example() ( public void display() ( System.out.println("Anonymous class overrides the method display()."); ) ); 

Тук обект от анонимния клас се създава динамично, когато трябва да заменим display()метода.

Анонимните класове също ни помагат да направим нашия код кратък.

Интересни статии...