Zum Inhalt springen
Informatik · Klasse 12 · Objektorientierte Modellierung und Software-Engineering · 1. Halbjahr

Vererbung und Hierarchien

Die Schülerinnen und Schüler wenden Vererbung an, um Klassenhierarchien zu erstellen und Code-Wiederverwendung zu fördern.

KMK BildungsstandardsKMK: Sekundarstufe II - Modellieren und ImplementierenKMK: Sekundarstufe II - Strukturieren und Vernetzen

Über dieses Thema

Vererbung ist ein zentrales Prinzip der objektorientierten Programmierung. Schülerinnen und Schüler lernen, Klassenhierarchien zu erstellen, indem Unterklassen Eigenschaften und Methoden von Oberklassen übernehmen. Dadurch fördern sie Code-Wiederverwendung und reduzieren Redundanzen in komplexen Systemen. Sie vergleichen Vererbung mit Komposition, analysieren deren Einfluss auf die Softwarestruktur und entwerfen Hierarchien, etwa für Fahrzeuge oder geometrische Figuren. Diese Kompetenzen stärken das Verständnis für modulare und wartbare Programme.

Im KMK-Lehrplan Sekundarstufe II verbindet das Thema 'Modellieren und Implementieren' mit 'Strukturieren und Vernetzen'. Schüler üben, abstrakte Modelle in konkrete Code-Strukturen umzusetzen, was systemisches Denken schult. Sie erkennen, wie Vererbung Polymorphie ermöglicht und die Erweiterbarkeit von Software verbessert, was in realen Projekten wie Software-Engineering essenziell ist.

Aktives Lernen eignet sich hervorragend, da Schüler durch Pair Programming und iterative Prototyping abstrakte Konzepte selbst erleben. Sie debuggen Hierarchien gemeinsam, entdecken Vorteile und Fallstricke praxisnah und festigen so das Wissen langfristig.

Leitfragen

  1. Vergleichen Sie die Vorteile von Vererbung gegenüber reiner Komposition in komplexen Systemen.
  2. Analysieren Sie, wie Vererbung die Struktur und Organisation von Software beeinflusst.
  3. Entwerfen Sie eine Klassenhierarchie, die das Prinzip der Vererbung nutzt.

Lernziele

  • Entwerfen Sie eine Klassenhierarchie für ein gegebenes Problem, die das Prinzip der Vererbung korrekt anwendet.
  • Analysieren Sie den Quellcode bestehender Klassenhierarchien, um die Anwendung von Vererbung und deren Auswirkungen auf die Code-Struktur zu identifizieren.
  • Vergleichen Sie die Vor- und Nachteile von Vererbung und Komposition anhand konkreter Anwendungsfälle in der Softwareentwicklung.
  • Bewerten Sie die Effizienz und Wartbarkeit von Software-Designs, die auf Vererbung basieren, im Vergleich zu alternativen Ansätzen.
  • Erklären Sie die Konzepte der Basisklasse, abgeleiteten Klasse und des Überschreibens von Methoden im Kontext von Vererbung.

Bevor es losgeht

Grundlagen der Objektorientierten Programmierung

Warum: Schüler müssen die Konzepte von Klassen, Objekten, Attributen und Methoden verstehen, bevor sie Vererbung anwenden können.

Datenstrukturen und Algorithmen

Warum: Ein grundlegendes Verständnis von Datenstrukturen hilft, die Organisation und Verwaltung von Objekten in komplexen Hierarchien zu erfassen.

Schlüsselvokabular

Vererbung (Inheritance)Ein Mechanismus, bei dem eine Klasse (Unterklasse) Eigenschaften und Methoden einer anderen Klasse (Oberklasse) übernimmt, um Code-Wiederverwendung zu ermöglichen.
Basisklasse (Superclass/Parent Class)Die Klasse, von der andere Klassen Eigenschaften erben. Sie stellt die allgemeineren Merkmale dar.
Abgeleitete Klasse (Subclass/Child Class)Die Klasse, die Eigenschaften und Methoden von einer Basisklasse erbt. Sie kann diese erweitern oder modifizieren.
Überschreiben (Overriding)Die Implementierung einer Methode in einer abgeleiteten Klasse, die bereits in der Basisklasse vorhanden ist, um spezifisches Verhalten zu implementieren.
Komposition (Composition)Ein Designprinzip, bei dem eine Klasse Objekte anderer Klassen als Instanzvariablen enthält, um Funktionalität zu nutzen. 'Hat-ein'-Beziehung.

Vorsicht vor diesen Fehlvorstellungen

Häufige FehlvorstellungVererbung ist immer besser als Komposition.

Was Sie stattdessen lehren sollten

Komposition bietet oft mehr Flexibilität, besonders bei 'Hat-eine'-Beziehungen. Aktive Vergleichsaufgaben in Gruppen lassen Schüler Szenarien testen, Schwächen erkennen und passende Muster wählen.

Häufige FehlvorstellungAlle Klassen müssen von einer Oberklasse erben.

Was Sie stattdessen lehren sollten

Nicht jede Klasse braucht Vererbung; flache Strukturen reichen oft. Durch modellierende Pair-Arbeiten entdecken Schüler, wann Hierarchien sinnvoll sind, und vermeiden übermäßige Vererbungstiefen.

Häufige FehlvorstellungVererbung kopiert nur Code, ändert nichts am Verhalten.

Was Sie stattdessen lehren sollten

Vererbung ermöglicht Überschreiben und Polymorphie. Hands-on-Implementierungen mit Tests zeigen Schülern dynamisches Verhalten und festigen das Verständnis für Laufzeitpolymorphie.

Ideen für aktives Lernen

Alle Aktivitäten ansehen

Bezüge zur Lebenswelt

  • Softwareentwickler in der Automobilindustrie nutzen Vererbung, um Fahrzeugmodelle zu modellieren. Eine Basisklasse 'Fahrzeug' könnte allgemeine Eigenschaften wie 'Geschwindigkeit' und 'Motor' definieren, während abgeleitete Klassen wie 'Auto', 'LKW' und 'Motorrad' spezifische Merkmale und Verhaltensweisen hinzufügen.
  • Spieleentwickler verwenden Vererbung, um verschiedene Charaktertypen in einem Videospiel zu erstellen. Eine Basisklasse 'Charakter' könnte Attribute wie 'Gesundheit' und 'Position' definieren, während spezialisierte Klassen wie 'Krieger', 'Magier' und 'Bogenschütze' einzigartige Fähigkeiten und Werte erben und überschreiben.

Ideen zur Lernstandserhebung

Kurze Überprüfung

Stellen Sie den Schülerinnen und Schülern ein einfaches Szenario vor (z.B. verschiedene Arten von Bankkonten). Bitten Sie sie, auf einem Blatt Papier eine einfache Klassenhierarchie zu skizzieren, die Vererbung nutzt, und kennzeichnen Sie die Basis- und abgeleiteten Klassen.

Diskussionsfrage

Teilen Sie die Klasse in Kleingruppen auf und geben Sie jeder Gruppe ein anderes Software-Design-Problem. Fordern Sie sie auf, zu diskutieren und zu begründen, ob Vererbung oder Komposition für die Modellierung der Beziehungen in ihrem spezifischen Problem besser geeignet ist. Jede Gruppe präsentiert ihre Entscheidung und Begründung.

Lernstandskontrolle

Bitten Sie die Schülerinnen und Schüler, auf einem Zettel die folgende Frage zu beantworten: 'Beschreiben Sie in einem Satz, wie Vererbung dazu beiträgt, Code-Wiederverwendung zu fördern, und nennen Sie ein Beispiel für eine Methode, die in einer abgeleiteten Klasse überschrieben werden könnte.'

Häufig gestellte Fragen

Wie erkläre ich Vererbung in der Oberstufe?
Beginnen Sie mit realen Hierarchien wie Tieren oder Fahrzeugen, modellieren Sie UML-Diagramme am Whiteboard. Lassen Sie Schüler Code schreiben und ausführen, um Erbschaft zu beobachten. Vergleichen Sie mit Komposition durch Beispiele, betonen Sie Wiederverwendung und Wartbarkeit. Integrieren Sie Diskussionen zu Fallstricken wie dem Fragile-Base-Class-Problem.
Welche Beispiele eignen sich für Klassenhierarchien?
Praktische Beispiele sind Fahrzeuge (Fahrzeug > Auto > Sportwagen), geometrische Formen (Form > Rechteck > Quadrat) oder Mitarbeiter (Person > Angestellter > Manager). Diese erlauben Polymorphie-Demos wie zeichnen() oder berechneGehalt(). Schüler erweitern sie selbst, um Relevanz zu schaffen und Kompetenzen im Entwerfen zu üben.
Wie wirkt sich Vererbung auf Softwarestruktur aus?
Vererbung schafft Hierarchien, die Code zentralisieren und Erweiterungen erleichtern, fördert aber auch Kopplung. Im Vergleich zu Komposition balanciert sie Wiederverwendung mit Flexibilität. Schüler analysieren durch Refactoring-Aufgaben, wie tiefe Hierarchien Wartung erschweren können, und lernen Prinzipien wie Liskov-Substitution.
Wie fördere ich aktives Lernen bei Vererbung?
Nutzen Sie Pair Programming für Hierarchie-Entwicklung, Stationen für Vergleiche mit Komposition und kollaborative UML-Modellierung. Schüler testen Code iterativ, debuggen gemeinsam und präsentieren Lösungen. Diese Methoden machen Abstraktes greifbar, fördern Diskussion und Fehlerkorrektur, was tiefes Verständnis schafft. Dauer: 45-60 Minuten pro Aktivität.

Planungsvorlagen für Informatik