Loading
Klassen, Objekte, Vererbung, Polymorphie und UML-Klassendiagramme bilden das didaktische Rückgrat der Oberstufeninformatik. Die KMK EPA verlangt sowohl Modellierung (UML/CRC) als auch Implementation (Java/Python) sowie eine Reflexion über Phasenmodelle der Softwareentwicklung.
6Abschnitteca. 18Min Lesezeit3KompetenzenNiveauBasis 1 · Standard 4 · Vertiefung 1Stand 06/2026
grundlegendes Niveau
gA: Klassen mit Attributen und Methoden modellieren, einfache Vererbungshierarchien implementieren, UML-Klassendiagramm lesen und ergänzen.
erhöhtes Niveau
eA: Polymorphie und dynamisches Binden begründen, Mehrfachvererbung (Interface) diskutieren, Entwurfsmuster (Observer, Strategy, Singleton) erkennen und anwenden, Phasenmodelle (V-Modell, Scrum) gegenüberstellen.
Lesetiefe: Vertiefung
Schriftgröße: Standard
Typische Fehler
LK-Vertiefung
eA-Vertiefung: Erläutern Sie das Prinzip „information hiding" (Parnas 1972) und beurteilen Sie an der Klasse `Konto`, wie eine gekapselte Invariante (z. B. Saldo ≥ Dispolimit) durch private Felder und prüfende Methoden erzwungen wird, die ein direkter Feldzugriff aushebeln würde.
Aktive Wiederholung
Modellieren Sie eine Klasse `Bibliothek` mit Attributen und Methoden für das Ausleihen und Zurückgeben von Büchern; geben Sie das UML-Klassendiagramm und eine Java-Implementation an.
Aktiv abrufen
Erinnere dich an die Kernpunkte — dann aufdecken.
UML-Klassendiagramm — Vererbung Tier → Hund
Implementieren Sie in Java eine abstrakte Klasse Tier mit abstrakter Methode lautGeben() und eine konkrete Unterklasse Hund. Demonstrieren Sie polymorphen Methodenaufruf.
```java abstract class Tier { protected String name; public Tier(String name) { this.name = name; } public abstract String lautGeben(); } ```
```java class Hund extends Tier { public Hund(String name) { super(name); } @Override public String lautGeben() { return name + " bellt: Wuff!"; } } ```
```java Tier t = new Hund("Bello"); System.out.println(t.lautGeben()); // dynamic dispatch ```
Die Variable t hat statischen Typ Tier, dynamischen Typ Hund. Zur Laufzeit wird Hund.lautGeben() aufgerufen — dynamische Bindung. Late Binding ist Grundprinzip der OOP.
Ergebnis: Polymorphismus über Vererbung und @Override; der Methodenaufruf wird zur Laufzeit aufgelöst.
Typische Fehler
LK-Vertiefung
eA-Vertiefung: Beurteilen Sie das LSP an einem Counter-Beispiel (Rechteck/Quadrat) und schlagen Sie eine alternative Modellierung vor.
Aktive Wiederholung
Modellieren Sie eine Vererbungshierarchie `Fahrzeug → Auto, Fahrrad`; implementieren Sie eine abstrakte Methode `geschwindigkeit()` und demonstrieren Sie dynamisches Binden.
Aktiv abrufen
Erinnere dich an die Kernpunkte — dann aufdecken.
UML-Klassendiagramm — Vererbung Tier → Hund
Modellieren Sie für eine Bibliotheksverwaltung ein UML-Klassendiagramm: Ein Leser kann mehrere Bücher gleichzeitig ausleihen, jedes Buch ist höchstens einem Leser zugeordnet. Geben Sie Klassen, Sichtbarkeiten, Multiplizitäten und eine Java-Skizze an.
Aus der Beschreibung ergeben sich die Klassen Leser und Buch. Verben (ausleihen, zurückgeben) werden zu Methoden.
Leser: - leserNr:int, - name:String. Buch: - isbn:String, - titel:String, - ausgeliehen:boolean. Attribute private (−), Methoden public (+).
Assoziation „leiht aus": Leser 0..1 ── 0..* Buch (ein Leser, viele Bücher; jedes Buch höchstens einem Leser, also 0..1, da ein nicht ausgeliehenes Buch keinem Leser zugeordnet ist). Eine Aggregation ist hier unpassend, da Bücher unabhängig vom Leser existieren.
```java class Leser { private int leserNr; private String name; private List<Buch> ausgeliehen = new ArrayList<>(); public void ausleihen(Buch b) { ausgeliehen.add(b); } } class Buch { private String isbn, titel; private boolean ausgeliehen; } ```
Ergebnis: Zwei Klassen mit 0..1-zu-0..*-Assoziation; Sichtbarkeiten und Multiplizitäten konsistent zwischen UML und Java.
Typische Fehler
LK-Vertiefung
eA-Vertiefung: Begründen Sie an je einem Beispiel (Auto–Motor vs. Universität–Studentin/Student), warum die eine Beziehung eine Komposition, die andere eine Aggregation ist, und leiten Sie aus den Multiplizitäten die Umsetzung einer n:m-Assoziation in eine Verbindungsklasse her.
Aktive Wiederholung
Stellen Sie für ein Online-Shop-Modell mit Klassen `Kunde`, `Bestellung`, `Artikel` ein vollständiges UML-Klassendiagramm mit Multiplizitäten, Sichtbarkeiten und mindestens einer Aggregation auf.
Aktiv abrufen
Erinnere dich an die Kernpunkte — dann aufdecken.
Typische Fehler
LK-Vertiefung
eA-Vertiefung: Beurteilen Sie das Open/Closed-Prinzip am Beispiel einer Klasse `Steuerberechner` und zeigen Sie, wie das Strategy-Muster Erweiterbarkeit fördert.
Aktive Wiederholung
Modellieren Sie eine Sortier-Anwendung mit Strategy-Muster, sodass zur Laufzeit zwischen Insertion- und Mergesort gewechselt werden kann; geben Sie UML und Java-Skelett an.
Aktiv abrufen
Erinnere dich an die Kernpunkte — dann aufdecken.
Software-Engineering: Wasserfall- vs. Scrum-Vorgehensmodell
Typische Fehler
LK-Vertiefung
eA-Vertiefung: Ordnen Sie die vier Teststufen den Phasen des V-Modells zu und beurteilen Sie, warum testgetriebenes Entwickeln und kontinuierliche Integration besonders gut zu Scrum, weniger gut zum reinen Wasserfallmodell passen.
Aktive Wiederholung
Vergleichen Sie das V-Modell mit Scrum hinsichtlich Anforderungswandel, Dokumentation und Teststrategien; beurteilen Sie, welches Modell für ein Online-Banking-Projekt geeigneter ist.
Aktiv abrufen
Erinnere dich an die Kernpunkte — dann aufdecken.
UML-Sequenzdiagramm: Bestellung aufgeben
Typische Fehler
LK-Vertiefung
eA-Vertiefung: Erstellen Sie ein Sequenzdiagramm für den Ablauf „Bestellung aufgeben → Bestand prüfen → bestätigen" und ordnen Sie jede Nachricht einer Methode im zugehörigen Klassendiagramm zu.
Aktive Wiederholung
Modellieren Sie für ein Objekt `Bestellung` ein Zustandsdiagramm mit den Zuständen offen, bezahlt, versandt, abgeschlossen sowie storniert und geben Sie für jeden Übergang das auslösende Ereignis an.
Aktiv abrufen
Erinnere dich an die Kernpunkte — dann aufdecken.