Jeder Java-Entwickler hatte wahrscheinlich schon einmal den Wunsch, Mehrfachvererbung einzusetzen. Auch wenn es gute Gründe dagegen gibt, könnte der Einsatz der Mehrfachvererbung oftmals die Duplizierung von Quellcode verhindern. Denn selbst wer Delegation anstatt der Mehrfachvererbung einsetzt, muss zumindest die Methodensignaturen duplizieren.
Dabei gibt es auch auf der JVM die Möglichkeit, Klassen um zusätzliche Methoden anzureichern. Dies ermöglicht zumindest eine eingeschränkte Art der Mehrfachvererbung. Grundsätzlich wird dabei eine beliebige Klasse um zusätzliche Methoden einer anderen Klasse erweitert. Der grundlegende Unterschied zur Mehrfachvererbung besteht darin, dass die Klasse, die um Methoden erweitert wird, selbst nicht auf die zusätzlich hinzugefügten Methoden zugreifen kann. Dadurch können die Probleme, die bei der Mehrfachvererbung auftreten können, vermieden werden. Dieses grundlegende Konzept ist sowohl bei Spring AOP, als auch bei Groovy und Scala unter verschiedenen Namen umgesetzt:
- Spring AOP: Introduction
- Groovy: Mixin
- Scala: Trait
Einsortiert unter:Groovy and Grails, Java Runtimes - VM, Appserver & Cloud, Other languages for the Java VM, Spring Universe Tagged: AOP, Groovy, Mixin, Scala, spring, Trait
![](http://stats.wordpress.com/b.gif?host=blog.oio.de&blog=7731718&post=220&subd=techscouting&ref=&feed=1)