Skip to content

Polymorphie: Vielfalt nutzenAktivitäten & Unterrichtsstrategien

Aktives Lernen funktioniert hier besonders gut, weil Schülerinnen und Schüler Polymorphie nicht durch Theorie verstehen, sondern durch das eigene Handhaben von Objekten und Methoden. Die direkte Arbeit mit Hierarchien und Schnittstellen macht den Unterschied zwischen statischer und dynamischer Bindung erfahrbar.

Klasse 10Digitale Welten Gestalten: Informatik in der Praxis4 Aktivitäten30 Min.50 Min.

Lernziele

  1. 1Erklären Sie, wie Polymorphie die Behandlung verschiedener Objekttypen über eine gemeinsame Schnittstelle ermöglicht.
  2. 2Analysieren Sie Codebeispiele, um zu identifizieren, wie dynamische Bindung die Auswahl der korrekten Methode zur Laufzeit bestimmt.
  3. 3Entwerfen Sie eine einfache Klassenstruktur, die Polymorphie nutzt, um auf unterschiedliche Objekte (z.B. verschiedene Tierarten) mit einer gemeinsamen Aktion (z.B. 'laut geben') zu reagieren.
  4. 4Vergleichen Sie die Vorteile von Polymorphie gegenüber einer starren, typgebundenen Programmierung hinsichtlich Erweiterbarkeit und Wartbarkeit.

Möchten Sie einen vollständigen Unterrichtsentwurf mit diesen Lernzielen? Mission erstellen

30 Min.·Partnerarbeit

Pair Programming: Tier-Hierarchie erweitern

Paare starten mit einer Oberklasse Tier und Methoden wie 'bewegen()'. Sie erstellen Unterklassen Hund und Vogel, überschreiben 'bewegen()' und testen polymorph in einer Liste. Diskutieren Sie Laufzeitunterschiede.

Vorbereitung & Details

Wie können wir Programme so schreiben, dass sie mit verschiedenen Objekttypen gleichzeitig umgehen können?

Moderationstipp: Legen Sie in der Pair Programming-Aufgabe klare Rollen fest: eine Person schreibt Code, die andere beobachtet und Fragen stellt, um das Verständnis zu vertiefen.

Setup: Gruppentische mit Zugang zu Recherchequellen

Materials: Dokumentation des Problemszenarios, KWL-Tabelle (Wissen, Wollen, Lernen) oder Inquiry-Framework, Ressourcenpool / Handapparat, Vorlage für die Ergebnispräsentation

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
45 Min.·Kleingruppen

Small Groups: Interface-basierte Formen

Gruppen definieren ein Interface Zeichnen mit Methode 'zeichne()'. Implementieren Sie Kreis, Rechteck und Dreieck. Sammeln Sie Objekte in einer Liste und rufen 'zeichne()' polymorph auf, um Grafiken zu erzeugen.

Vorbereitung & Details

Warum ist Polymorphie ein Schlüsselkonzept für flexible und erweiterbare Software?

Moderationstipp: Bei der Interface-basierten Formen-Aufgabe stellen Sie sicher, dass jede Gruppe mindestens ein Beispiel ohne Vererbung entwickelt, um die Flexibilität von Interfaces zu verdeutlichen.

Setup: Gruppentische mit Zugang zu Recherchequellen

Materials: Dokumentation des Problemszenarios, KWL-Tabelle (Wissen, Wollen, Lernen) oder Inquiry-Framework, Ressourcenpool / Handapparat, Vorlage für die Ergebnispräsentation

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
50 Min.·Ganze Klasse

Whole Class: Fahrzeug-Simulation debuggen

Die Klasse analysiert einen fehlerhaften polymorphen Code mit Auto und Flugzeug. Gemeinsam korrigieren, erweitern um Boot und simulieren eine Flotte in einer Schleife. Teilen Sie Erkenntnisse.

Vorbereitung & Details

Analysieren Sie, wie dynamische Bindung die Laufzeitentscheidung über Methodenaufrufe ermöglicht.

Moderationstipp: Sprechen Sie während der Fahrzeug-Simulation gezielt über Debugging-Schritte, um zu zeigen, wie dynamische Bindung im Code wirkt.

Setup: Gruppentische mit Zugang zu Recherchequellen

Materials: Dokumentation des Problemszenarios, KWL-Tabelle (Wissen, Wollen, Lernen) oder Inquiry-Framework, Ressourcenpool / Handapparat, Vorlage für die Ergebnispräsentation

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
40 Min.·Einzelarbeit

Individual: Eigenes polymorphisches System

Jede Schülerin und jeder Schüler entwirft eine Hierarchie, z. B. Musiker mit 'spiele()', und integriert sie in eine Band-Simulation. Testen und präsentieren Sie Erweiterbarkeit.

Vorbereitung & Details

Wie können wir Programme so schreiben, dass sie mit verschiedenen Objekttypen gleichzeitig umgehen können?

Setup: Gruppentische mit Zugang zu Recherchequellen

Materials: Dokumentation des Problemszenarios, KWL-Tabelle (Wissen, Wollen, Lernen) oder Inquiry-Framework, Ressourcenpool / Handapparat, Vorlage für die Ergebnispräsentation

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit

Dieses Thema unterrichten

Erfahrene Lehrkräfte beginnen mit konkreten Beispielen, bevor sie abstrakte Konzepte einführen. Vermeiden Sie es, Polymorphie nur als theoretisches Prinzip zu behandeln – stattdessen arbeiten die Schülerinnen und Schüler mit echten Objekten und Methoden. Nutzen Sie Fehler als Lernchance, indem Sie gemeinsam Code analysieren und korrigieren.

Was Sie erwartet

Erfolgreiches Lernen zeigt sich darin, dass die Lernenden Polymorphie nicht nur beschreiben, sondern aktiv anwenden können. Sie erkennen, wann Vererbung oder Interfaces sinnvoll sind, und erklären den Mechanismus der dynamischen Bindung mit eigenen Worten.

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
Mission erstellen

Vorsicht vor diesen Fehlvorstellungen

Häufige FehlvorstellungWährend der Pair Programming-Aufgabe (Tier-Hierarchie erweitern) könnte der Eindruck entstehen, dass alle Objekte identisch sind.

Was Sie stattdessen lehren sollten

Fordern Sie die Paare auf, die Implementierungen der Methoden in den Unterklassen zu vergleichen und zu beschreiben, wie jedes Tier spezifisch 'laut gibt'. Peer-Reviews helfen, die Unterschiede sichtbar zu machen.

Häufige FehlvorstellungWährend der Interface-basierten Formen-Aufgabe könnte angenommen werden, dass die Bindung immer zur Kompilierzeit erfolgt.

Was Sie stattdessen lehren sollten

Bitten Sie die Gruppen, ihre Implementierungen mit Debugging-Tools zu testen und die Ausgaben zu vergleichen, um zu zeigen, wie die Methode zur Laufzeit gewählt wird.

Häufige FehlvorstellungWährend der Fahrzeug-Simulation könnte der Glaube entstehen, dass Polymorphie immer Vererbung benötigt.

Was Sie stattdessen lehren sollten

Lassen Sie die Klasse während der Simulation Interfaces verwenden, um zu demonstrieren, dass auch ohne Vererbung polymorpher Code möglich ist. Diskutieren Sie, warum Interfaces oft flexibler sind.

Ideen zur Lernstandserhebung

Lernstandskontrolle

Nach der Pair Programming-Aufgabe (Tier-Hierarchie erweitern) geben Sie den Schülerinnen und Schülern ein Code-Snippet mit einer Liste von 'Tier'-Objekten, die 'laut geben'. Fragen Sie: 'Welche Ausgabe erwarten Sie, und warum? Nennen Sie eine weitere Klasse, die Sie hinzufügen könnten, ohne die Hauptlogik zu ändern.'

Kurze Überprüfung

Nach der Interface-basierten Formen-Aufgabe stellen Sie die Frage: 'Erklären Sie in eigenen Worten, warum die dynamische Bindung wichtig ist. Geben Sie ein Beispiel, wo dies nützlich wäre.' Bewerten Sie die Antworten auf Klarheit und Korrektheit.

Diskussionsfrage

Nach der Fahrzeug-Simulation leiten Sie eine Diskussion mit der Frage: 'Wie könnte Polymorphie in einem Museumssystem helfen, neue Kunstformen einheitlich zu verwalten, auch wenn diese bisher nicht im System vorgesehen waren?'

Erweiterungen & Unterstützung

  • Fordern Sie die Lernenden auf, in ihrem eigenen polymorphischen System eine neue Klasse hinzuzufügen, die eine Methode mit einem unerwarteten Verhalten überschreibt.
  • Für Schülerinnen und Schüler, die unsicher sind, bieten Sie eine vorbereitete Code-Vorlage mit Kommentaren an, die die dynamische Bindung hervorhebt.
  • Vertiefen Sie das Thema, indem die Lernenden eine Dokumentation erstellen, die den Unterschied zwischen Vererbung und Interfaces mit Code-Beispielen erklärt.

Schlüsselvokabular

PolymorphieDie Fähigkeit von Objekten unterschiedlicher Klassen, auf dieselbe Nachricht (Methodenaufruf) auf ihre eigene, spezifische Weise zu reagieren.
Schnittstelle (Interface)Ein Vertrag, der eine Sammlung von Methodensignaturen definiert, die eine Klasse implementieren muss. Sie legt fest, was ein Objekt tun kann, ohne zu spezifizieren, wie es dies tut.
Abstrakte KlasseEine Klasse, die nicht direkt instanziiert werden kann und oft Methoden enthält, die von abgeleiteten Klassen implementiert werden müssen.
Dynamische Bindung (Späte Bindung)Der Prozess, bei dem zur Laufzeit entschieden wird, welche konkrete Methode basierend auf dem tatsächlichen Objekttyp aufgerufen wird, nicht auf dem Typ der Variablen, die auf das Objekt verweist.
Methodenüberschreibung (Overriding)Wenn eine abgeleitete Klasse eine Methode mit derselben Signatur wie eine Methode in ihrer Oberklasse bereitstellt und implementiert.

Bereit, Polymorphie: Vielfalt nutzen zu unterrichten?

Erstellen Sie eine vollständige Mission mit allem, was Sie brauchen

Mission erstellen