Vererbung und PolymorphieAktivitäten & Unterrichtsstrategien
Aktive Lernformen sind für Vererbung und Polymorphie besonders wirksam, weil Schüler hier die abstrakten Konzepte durch konkretes Handeln verstehen. Durch das Modellieren eigener Klassenhierarchien und das praktische Ausprobieren von Überschreibungen erleben sie sofort, wie sich Code-Strukturen verändern und verfeinern lassen.
Lernziele
- 1Klassifizieren Sie verschiedene Arten von Vererbung (einfach, mehrfach) und erklären Sie deren Anwendungsfälle in der Softwareentwicklung.
- 2Analysieren Sie bestehende Klassenhierarchien auf potenzielle Probleme wie Kopplung und Wartbarkeit und schlagen Sie Verbesserungen vor.
- 3Entwerfen Sie eine einfache Klassenhierarchie für ein gegebenes Problem, die Vererbung und Polymorphie effektiv nutzt.
- 4Demonstrieren Sie die Funktionsweise von Polymorphie anhand eines konkreten Codebeispiels, das die Behandlung von Objekten unterschiedlicher Klassen über eine gemeinsame Schnittstelle zeigt.
- 5Bewerten Sie die Vor- und Nachteile der Verwendung von Vererbung im Vergleich zu Komposition für die Code-Wiederverwendung.
Möchten Sie einen vollständigen Unterrichtsentwurf mit diesen Lernzielen? Mission erstellen →
Pair Programming: Tierhierarchie aufbauen
Paare erstellen eine Superklasse 'Tier' mit Methoden wie 'bewegen()' und 'machenGeräusch()'. Sie erweitern sie um Subklassen 'Hund' und 'Katze', die Methoden überschreiben. Testen Sie polymorph mit einer Liste von Tieren.
Vorbereitung & Details
Wie können wir allgemeine Verhaltensweisen definieren, die für viele Spezialfälle gelten?
Moderationstipp: Stellen Sie während der Pair Programming sicher, dass beide Partner abwechselnd codieren und erklären, um ein gemeinsames Verständnis zu fördern.
Setup: Gruppentische mit Platz für die Fallunterlagen
Materials: Fallstudien-Paket (3-5 Seiten), Arbeitsblatt mit Analyseraster, Präsentationsvorlage
Small Groups: Formen-Polymorphie simulieren
Gruppen definieren eine 'Form'-Superklasse mit 'flaecheBerechnen()'. Subklassen 'Kreis' und 'Rechteck' implementieren spezifische Berechnungen. Sammeln Sie Formen in einer Liste und rufen polymorph auf.
Vorbereitung & Details
Welche Risiken entstehen durch zu tiefe Vererbungshierarchien?
Moderationstipp: Geben Sie den Small Groups klare Beispiele für Formen vor, die sie modellieren sollen, um die Diskussion auf die Polymorphie zu konzentrieren.
Setup: Gruppentische mit Platz für die Fallunterlagen
Materials: Fallstudien-Paket (3-5 Seiten), Arbeitsblatt mit Analyseraster, Präsentationsvorlage
Whole Class: Hierarchie-Risiken debattieren
Präsentieren Sie eine tiefe Hierarchie. Die Klasse diskutiert in Plenum Vor- und Nachteile, identifiziert Fragilitäten und schlägt Alternativen wie Komposition vor.
Vorbereitung & Details
Wie ermöglicht Polymorphie die Erweiterbarkeit von Software ohne Änderung des bestehenden Codes?
Moderationstipp: Lenken Sie die Whole-Class-Debatte zu Hierarchie-Risiken, indem Sie gezielt Fragen zu Wartbarkeit und Erweiterbarkeit stellen.
Setup: Gruppentische mit Platz für die Fallunterlagen
Materials: Fallstudien-Paket (3-5 Seiten), Arbeitsblatt mit Analyseraster, Präsentationsvorlage
Individual: Code refactoren
Schüler erhalten flachen Code und bauen eine Vererbungshierarchie um. Sie testen Polymorphie und dokumentieren Verbesserungen.
Vorbereitung & Details
Wie können wir allgemeine Verhaltensweisen definieren, die für viele Spezialfälle gelten?
Moderationstipp: Fordern Sie beim individuellen Refactoring auf, zunächst eine zu tiefe Hierarchie zu identifizieren und dann eine flachere Alternative zu entwerfen.
Setup: Gruppentische mit Platz für die Fallunterlagen
Materials: Fallstudien-Paket (3-5 Seiten), Arbeitsblatt mit Analyseraster, Präsentationsvorlage
Dieses Thema unterrichten
Erfahrene Lehrer beginnen mit einfachen, visuell nachvollziehbaren Beispielen wie Tierklassen oder geometrischen Formen. Wichtig ist, von Anfang an auf klare Abgrenzungen zwischen Vererbung und Komposition hinzuweisen, um starre Hierarchien zu vermeiden. Die Schüler sollten regelmäßig Gelegenheit haben, Code zu analysieren und zu hinterfragen, warum bestimmte Strukturen gewählt wurden. Vermeiden Sie es, zu früh auf komplexe Design-Patterns einzugehen – der Fokus liegt auf dem grundlegenden Verständnis von Hierarchien und polymorphen Aufrufen.
Was Sie erwartet
Erfolg zeigt sich, wenn Schüler Klassenhierarchien nicht nur skizzieren, sondern gezielt Methoden überschreiben und deren Aufrufe in verschiedenen Kontexten erklären können. Sie sollten in der Lage sein, zwischen sinnvoller Vererbung und übermäßiger Hierarchietiefe zu unterscheiden und Polymorphie als flexibles Werkzeug einzusetzen.
Diese Aktivitäten sind ein Ausgangspunkt. Die vollständige Mission ist das Erlebnis.
- Vollständiges Moderationsskript mit Lehrkraft-Dialogen
- Druckfertige Schülermaterialien, bereit für den Unterricht
- Differenzierungsstrategien für jeden Lerntyp
Vorsicht vor diesen Fehlvorstellungen
Häufige FehlvorstellungWährend der Pair Programming beobachten Sie, dass Schüler Vererbung einsetzen, obwohl eine Komposition sinnvoller wäre. Korrigieren Sie dies, indem Sie sie auffordern, die Beziehungen zwischen den Klassen zu skizzieren und Alternativen zu diskutieren.
Was Sie stattdessen lehren sollten
Nutzen Sie die Pair Programming Aufgabe, um gezielt zu fragen: 'Könnte ein Tier auch mehrere Eigenschaften gemeinsam haben, ohne dass diese in einer Hierarchie stehen?' und lassen Sie sie die Vor- und Nachteile abwägen.
Häufige FehlvorstellungWährend der Small Groups beobachten Sie, dass Schüler annehmen, Polymorphie erfordere identische Methodenimplementierungen. Korrigieren Sie dies, indem Sie auf die Unterschiede in den Methodenaufrufen hinweisen.
Was Sie stattdessen lehren sollten
Fordern Sie die Gruppen auf, drei verschiedene implementations der Methode 'zeichnen()' für Kreis, Quadrat und Dreieck zu erstellen und zu zeigen, wie der polymorphe Aufruf funktioniert.
Häufige FehlvorstellungWährend der Whole-Class-Debatte wird behauptet, tiefe Hierarchien seien immer wiederverwendbarer. Korrigieren Sie dies, indem Sie auf konkrete Code-Beispiele und deren Wartbarkeit eingehen.
Was Sie stattdessen lehren sollten
Lassen Sie die Schüler im Plenum eine tiefe Hierarchie (z.B. Tier -> Säugetier -> Raubtier -> Löwe) mit einer flachen Alternative vergleichen und diskutieren, welche Struktur bei neuen Anforderungen einfacher anzupassen ist.
Ideen zur Lernstandserhebung
Nach der Pair Programming Aufgabe sollen die Schüler die entstandene Tierhierarchie skizzieren und mindestens zwei Methoden benennen, die überschrieben wurden. Sie erklären kurz, warum diese Überschreibungen notwendig sind.
Während der Small Groups präsentieren Sie ein Code-Snippet mit einer Liste von Formen, die die Methode 'ausgeben()' aufrufen. Die Schüler erklären in Einzelarbeit, welche Methode tatsächlich aufgerufen wird und warum dies ein Beispiel für Polymorphie ist.
Nach der Whole-Class-Debatte zu Hierarchie-Risiken sammeln Sie die Ergebnisse der Kleingruppen und bewerten gemeinsam, welche Argumente für und gegen tiefe Hierarchien sprechen. Achten Sie darauf, ob die Schüler konkrete Beispiele aus der Debatte nennen können.
Erweiterungen & Unterstützung
- Fordern Sie frühfertige Paare auf, ihre Tierhierarchie um eine weitere Ebene zu erweitern und zu erklären, warum diese sinnvoll oder unnötig ist.
- Unterstützen Sie unsichere Schüler, indem Sie ihnen eine vorgegebene Hierarchie zur Verfügung stellen, die sie zunächst nur analysieren und dann gezielt Methoden überschreiben lassen.
- Vertiefen Sie das Thema, indem die Schüler eine eigene Mini-Bibliothek mit mindestens drei Klassen und zwei Polymorphie-Beispielen entwickeln und dokumentieren.
Schlüsselvokabular
| Basisklasse (Superklasse) | Eine Klasse, von der andere Klassen Eigenschaften und Methoden erben können. Sie definiert allgemeine Merkmale. |
| Abgeleitete Klasse (Subklasse) | Eine Klasse, die Eigenschaften und Methoden von einer Basisklasse erbt. Sie kann diese erweitern oder überschreiben. |
| Überschreiben (Overriding) | Wenn eine abgeleitete Klasse eine Methode der Basisklasse mit einer spezifischen Implementierung für sich selbst neu definiert. |
| Polymorphie (Vielgestaltigkeit) | Die Fähigkeit, Objekte unterschiedlicher Klassen, die von einer gemeinsamen Basisklasse abgeleitet sind, über eine gemeinsame Schnittstelle anzusprechen. |
| Is-a-Beziehung | Eine Beziehung, die durch Vererbung modelliert wird, bei der eine Subklasse eine spezialisierte Form der Superklasse ist (z.B. 'Ein Hund ist ein Säugetier'). |
Vorgeschlagene Methoden
Planungsvorlagen für Informatik in der Oberstufe: Algorithmen, Daten und Gesellschaft
Mehr in Objektorientierte Modellierung
Klassen und Objekte
Unterscheidung zwischen dem Bauplan (Klasse) und der konkreten Ausprägung (Instanz).
2 methodologies
Attribute und Methoden
Die Schülerinnen und Schüler definieren Eigenschaften und Verhaltensweisen von Objekten.
2 methodologies
Konstruktoren und Destruktoren
Die Schülerinnen und Schüler lernen, wie Objekte initialisiert und Ressourcen freigegeben werden.
2 methodologies
Beziehungen zwischen Objekten: Assoziation
Modellierung von Interaktionen durch Assoziation und Komposition.
2 methodologies
Beziehungen zwischen Objekten: Aggregation und Komposition
Vertiefung der Modellierung von Teil-Ganzes-Beziehungen.
2 methodologies
Bereit, Vererbung und Polymorphie zu unterrichten?
Erstellen Sie eine vollständige Mission mit allem, was Sie brauchen
Mission erstellen