OO-Grundprinzipien
Die 4 Säulen der Objektorientierung – regelmäßig in MC- und Theoriefragen.
Lernziele
- Die vier OO-Säulen Abstraktion, Kapselung, Vererbung, Polymorphie benennen und erklären
- Typische Beispiele und Stolperfallen parat haben
1. Abstraktion
Die wesentlichen Eigenschaften eines Objekts herausarbeiten, Details weglassen. Ein Klasse Auto hat Geschwindigkeit und beschleunigt() – der Verbrennungsprozess ist irrelevant.
2. Kapselung
Daten (Attribute) vor direktem Zugriff schützen und nur über Methoden (Getter/Setter) verfügbar machen. Sichtbarkeit: private Attribute + public Methoden.
KLASSE Konto
- saldo: ZAHL
+ einzahlen(betrag: ZAHL)
WENN betrag > 0 DANN saldo ← saldo + betrag
+ getSaldo() → ZAHL
GIB saldo zurück
ENDE KLASSE3. Vererbung
Eine Klasse (Unterklasse) übernimmt Attribute und Methoden einer anderen (Oberklasse) und erweitert/überschreibt sie. Ziel: Wiederverwendung.
KLASSE Person
- name: STRING
ENDE KLASSE
KLASSE Mitarbeiter ERBT Person
- personalnummer: INT
ENDE KLASSE4. Polymorphie
»Vielgestaltigkeit«. Dieselbe Methoden-Signatur kann sich in Unterklassen unterschiedlich verhalten. Zur Laufzeit entscheidet die tatsächliche Klasse über das verwendete Verhalten (dynamisches Binden).
KLASSE Form
+ flaeche() → ZAHL // abstrakt
ENDE KLASSE
KLASSE Kreis ERBT Form
- radius: ZAHL
+ flaeche() → ZAHL
GIB 3.14159 * radius * radius zurück
ENDE KLASSE
KLASSE Rechteck ERBT Form
- a, b: ZAHL
+ flaeche() → ZAHL
GIB a * b zurück
ENDE KLASSE
// Aufruf, der Polymorphie zeigt:
formen: LISTE VON Form ← [neu Kreis(2), neu Rechteck(3,4)]
FÜR f IN formen TUE
GIB f.flaeche() aus // ruft die jeweils richtige Version auf
ENDE FÜRBonus: Interfaces / Abstrakte Klassen
- Interface: reiner Vertrag – keine Implementierung, nur Signaturen.
- Abstrakte Klasse: kann teilweise implementiert sein; nicht instanziierbar.
Übungen
Eine AntwortWelche der folgenden Beschreibungen trifft auf Polymorphie zu?
MehrfachauswahlWelche Aussagen zur Kapselung stimmen?