Daniel Thoma: Von Elternklasse geerbte Methoden verstecken

Beitrag lesen

Hallo fk,

willst du nun geerbte methoden verstecken, welche der entwickler aus welchen gründen auch immer nicht als privat deklariert hat, mußt du diese methoden überschreiben und deine eigene sicht setzen.

Wenn Du mit "sicht" die Sichtbarkeit meinst, so kannst Du die nicht weiter einschränken als das die Elternklasse tut. Du kannst also eine Methode, die als protected deklariert ist mit eine öffentlichen überschreiben, umgekehrt aber natürlich nicht.

Manchmal ist es tatsächlich sinnvoll, bestimmte Methoden einer Schnittstelle oder einer Elternklasse nicht zu Unterstüzen. In diesem Fall kann man in der Implementierung der Kindklasse eine UnsupportedOperationException werfen. (Bei Listen, die nur gelesen werden können wird das z.B. so gemacht, wenn man set() aufruft)
Damit sollte man aber sehr vorsichtig sein, speziell dann, wenn die throws-Angabe der Methode in der Elternklasse nicht angibt, dass diese Exception geworfen werden kann. Dies ist nicht zwingend notwendig, da UnsupportedOperationException eine RuntimException ist, aber wenn die Elternklasse nicht vorsieht, dass eine Operation u.U. nicht unterstüzt wird, sollte man sich gut überlegen, ob man nicht etwas grundsätzliches falsch macht, wenn man das tun will.

Grüße

Daniel