package oop.AnonymousInnerClass;

public class AnonymousInnerClass {
	/*
	 * - ist ohne Name definiert und werden direkt in der Instanziierung (manin Methode) erstellt.
	 * - Verwendung: Sie werden verwendet,um Schnittstellen oder abstrakte Klassen zu implementieren 
	 *   und deren Methoden zu überschreiben, ohne eine separate, benannte Klasse zu erstellen.
	 * - kann entweder extends klasse oder implements interface aber (nicht beids gleichzeitig)
	 * - ist für methoden und Konstruktoren
	 * - Anonymous Inner Class können kein Konstruktoren haben, weil sie ohne Name sind!
	 * - Anonymous kann mehreren Methoden überschreiben
	 * - können über definiert werden, wo Klasseninstanzen benötigt werden
	 * - die Methoden und die Variablen innerhalb der Anonymous sind nur innerhalb Anonymous sichtbar
	 * 	 oder ich muss z.b anstatt (Konstruktor test  = new Konstruktor()) => var test  = new Konstruktor()
	 *   das  ermöglicht mir die methoden und die Variable die in Anonymous in außen zu verweden
	 * - anonyme innere Klassen können verschachtelt werden also in anonyme ein anonyme
	 * - können keine statischen Variablen oder Methoden haben, das sie keinen Name haben
	 * - Private Elemente sind erlaubt aber sind nur innerhalb der anonyme innere Klassen sichtbar
	 *   
	 *  Warum benötigen wir sowas?
	 *  für Einmalige Verwendung: Sie sind ideal für einmalige Implementierungen, 
	 *  wie z.B. Event-Handler, Callbacks oder Threads.
	 *  
	 *  
	 */

}
