Dez 01

This post is also available in: Englisch

Bitte beachten, dass immer nur ein Interface oder eine Klasse als Vorlage für eine anonyme innere Klasse dient.

Erst einmal – wie immer – ein Beispiel zur Verdeutlichung:

public class Abteilung {

public static void main(String args [ ]){

Gruppe g = new Gruppe () {};

}

}
class Gruppe{}

interface Gruppe2 {}

bei der Klassendefinition class Gruppe { } können auch andere Klassen erweitert oder interfaces implementiert werden, z.B:

  • class Gruppe implements Gruppe2{}
  • class Gruppe implements Gruppe2, Gruppe3{}
  • class Gruppe extends Abteilung {}

Auch die Interfaces können entsprechend den üblichen Regeln erweitert werden, z.B.

  • interface Gruppe3 extends Gruppe2 {}

Dies dürfte alles schon bekannt, sein. Der Aufruf, die Compilierung und Ausführung einer inneren anonymen Klasse ändert sich bei den vorangegangenen Abänderungen nicht.

Die anonyme innere Klasse kann nur selbst nicht mehrere Klassen oder interfaces erweitern bzw. implementieren. Hier ein paar Beispiele, die zu CompilerFehlern führen:

  • Gruppe g = new Gruppe () implements Gruppe2  {};
  • Gruppe g = new Gruppe implements Gruppe2, Gruppe3 () {};
  • Gruppe g = new Gruppe extends Abteilung() {};
  • Print
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • Add to favorites
  • RSS
  • Blogosphere
  • email
  • PDF
  • Wikio
  • Technorati
  • Digg
  • DZone

Leave a Reply

preload preload preload
http://www.wikio.de Blog Top Liste - by TopBlogs.de Blogverzeichnis - Blog Verzeichnis bloggerei.de Bloggeramt.de Software
Webbhotell Top Blogs