Auf Thema antworten

Jede Class-Datei in Java zeigt an, welche Interfaces eine Klasse implementiert und welche die Superklasse ist (bis auf [c]Object[/c]). Darauf greifen sowohl der Compiler als auch die Laufzeit zu. Die Zuordnung geschieht rein über Strings. Wenn eine Klasse [c]pkg.Foo[/c] das Interface [c]pkg.IFoo[/c] implementiert, steht in der Klassendefinition von [c]Foo[/c] als Superklasse [c]java/lang/Object[/c] und als Interface [c]pkg/IFoo[/c] (intern sind es Schrägstrichte statt Punkte). Diese werden dann dynamisch aufgelöst; zur Laufzeit kommt da die komplette Classloader-Schiene zum Einsatz, was das Ganze unter Umständen recht komplex werden lässt, der Compiler sucht afaik einfach nur linear im Classpath.



Oben