Whouzuo: Abstrakte methoden praxistest

Beitrag lesen

Genau das ist der Punkt, weswegen eine Dummy Methode eben ganz ganz böse ist und man soetwas nicht tun sollte.

Aber eine abstrakte Methode ist doch auch nur ein dummy.

Naja, du kannst sie aber nicht aufrufen, weil du die entsprechende Klasse gar nicht instanziieren kannst. Der meckert dich der Compiler an und es entstehen keine Laufzeitfehler, denn du weißt sofort, dass du was falsch gemacht hast.

Es ist dennoch schlechter Stil.
Ergo würdest du eine abstrakte Methode definieren und dir die Zeit nehmen um sie in allen Subklassen definieren?

Ähm ja? Warum sollte ich das auch nicht wollen? Wenn die Methode sowieso in jeder Subklasse gleich ist, dann deklariere ich sie nicht als abstrakt, sodass die Subklassen sie erben. Wenn sie dann in einzelnen Subklassen unterschiedlich implementiert sein soll, dann überschreibe ich sie in den jeweiligen Subklassen.
Wenn hingegen eine der Subklassen diese Methode gar nicht haben soll (d.h. man darf sie nicht aufrufen, weil das keinen Sinn ergibt), dann sollte diese Klasse eben keine Subklasse sein und man hat das Konzept der Vererbung fälschlicherweise eingesetzt, wo man ein anderes hätte anwenden sollen.