002
09.03.2009, 19:11 Uhr
0xdeadbeef
Gott (Operator)
|
In Java kommst du an die verdeckte Methode ohne weiteres nicht ran - mit Reflection dürfte sich da wohl was zusammenhacken lassen, aber eigentlich erlaubt Java sowas nicht. Das Schlüsselwort "super" hat lediglich innerhalb der Klasse eine Bedeutung, etwa
C++: |
public class A extends B { public String f() { return super.f() + " from a-func"; } }
|
Ob man das jetzt als blanken Unfug betrachtet, ist im Zweifel Geschmackssache. Von C++ kommend wäre es wohl schon schön, diese Freiheit zu haben, weil man es so gewohnt ist, allerdings verfolgt Java einen gänzlich anderen Ansatz als C++s "Der Programmierer weiß besser als der Compiler, was er will"-Ansatz. Java ist der Ansicht, dass Klasse A sich auch wie Klasse A zu verhalten hat, und dass der Programmierer, wenn er ihr das Verhalten der Klasse B entlocken will, einen Fehler macht, den der Compiler ihm nicht erlauben sollte. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |