In C++/JAVA wichtige Konzepte für Objektorientiertes Programmieren:
-
Abstrakte Klassen sind Basisklassen, die Methoden vorgeben,
jedoch ohne sie zu implementieren.
Damit wird erzwungen, dass alle Klassen die sich von so einer Klasse ableiten
diese Methoden eigenständig implementieren müssen.
In C++/JAVA gibt es dafür ein explizites Schlüsselwort
abstract.
In Python so nicht vorhanden.
-
Polymorphismus hängt eng mit abstrakten Klassen zusammen. In C++/JAVA
bedeutet es, dass Objekt–Methoden einer abgeleiteten Klasse über Referenzen auf die Basisklasse
angesprochen werden können. Dabei genügt es wenn diese Methoden
als abstrakte Methoden in der Basisklasse deklariert sind.
In Python ist Polymorphismus selbstverständliche Beigabe, aufgrund des
dynamic-typing
gibt es keine starren Datentypen, erst bei konkreter Verwendung eines Objektes zur Laufzeit wird
nach der aufgerufenen Methode gesucht. Deshalb ist das Fehlen von expliziten abstrakten
Klassen in Python weniger wichtig. Falls dennoch benötigt kann die
Funktionalität auch mit einfachen Programmiertricks emuliert werden.