Hoffentlich nicht zu akademisch ...
Angenommen, ich benötige reelle und komplexe Zahlen in meiner SW-Bibliothek.
Basierend auf der is-a- Beziehung (oder hier ) ist die reelle Zahl eine komplexe Zahl, wobei b im Imaginärteil der komplexen Zahl einfach 0 ist.
Auf der anderen Seite wäre meine Implementierung, dass das Kind das Elternteil erweitert, so dass ich in der übergeordneten RealNumber einen Realteil hätte und das Kind ComplexNumber imaginäre Kunst hinzufügen würde.
Es gibt auch eine Meinung, dass Vererbung böse ist .
Ich erinnere mich wie gestern, als ich an der Universität OOP lernte, mein Professor sagte, dies sei kein gutes Beispiel für Vererbung, da der absolute Wert dieser beiden unterschiedlich berechnet wird (aber dafür haben wir Methodenüberladung / Polymorfismus, oder?). .
Ich habe die Erfahrung gemacht, dass wir häufig Vererbung verwenden, um DRY zu lösen. Daher haben wir häufig künstliche abstrakte Klassen in der Hierarchie (wir haben oft Probleme, Namen zu finden, da sie keine Objekte aus einer realen Welt darstellen).