Und dann? Nach dem ersten Aufruf von TuEtwas funktioniert das auch nicht mehr (zumindest ohne expliziten Typecast).
Um einen solchen Typecast zu machen, müsste man schon sicherstellen, daß die erhaltene Instanz auch vom richtigen Typ ist. Für den Fall, daß
TuEtwas lediglich
Self zurückgibt, ist das noch einfach. Allerdings braucht man dann auch keinen Typecast, sondern kann ebenfalls
Self zurückgeben. In allen anderen Fällen ist das stark von der Implementation von
TuEtwas abhängig. Insbesondere, wenn
TuEtwas eine neue Instanz erzeugt, kann man nicht blind davon ausgehen, daß diese auch vom richtigen Typ ist.
In manchen Fällen wird man nicht drum herum kommen, die Funktionalität von
TuEtwas zumindest leicht verändert nachzubilden. Dann kann man es aber auch gleich
TuEtwas nennen und die geerbte, eigentlich nutzlose Methode gezielt verstecken.