Polymorphism

Version vom 5. April 2024, 17:04 Uhr von Glanz (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{{:MOOCit - Oben}} {| align=center {{:D-Tab}} '''Polymorphismus in der OOP''' {{o}} Ad-hoc-Polymorphismus {{o}} Subtyp-Polymorphismus {{o}} Implementierung in Java {{o}} Implementierung in C++ {{o}} Implementierung in Python |} {{:BRK}}…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)



Polymorphism



Polymorphismus in der objektorientierten Programmierung


Einleitung

Polymorphismus ist ein fundamentales Konzept in der objektorientierten Programmierung (OOP), das es ermöglicht, Objekte verschiedener Klassen, die eine gemeinsame Schnittstelle teilen, auf die gleiche Weise zu behandeln. Dieses Prinzip unterstützt die Flexibilität und Wiederverwendbarkeit von Code, indem es ermöglicht, dass ein Objekt viele Formen annehmen kann. In diesem aiMOOC wirst Du die verschiedenen Aspekte des Polymorphismus kennenlernen, verstehen, wie er in der OOP implementiert wird, und lernen, wie Du ihn in Deinen eigenen Programmen effektiv nutzen kannst.


Grundkonzepte


Was ist Polymorphismus?

Polymorphismus, vom Griechischen "poly" für viele und "morph" für Form, bezieht sich in der Informatik auf die Fähigkeit von Objekten, viele Formen anzunehmen. In der OOP bedeutet dies konkret, dass eine Variable, die nach einer Basisklasse deklariert wurde, Instanzen von sich selbst oder Instanzen von abgeleiteten Klassen (Unterklassen) aufnehmen kann. Diese Fähigkeit ermöglicht es Programmen, generisch zu sein und Operationen auf Objekten verschiedener Klassen auszuführen, die dieselbe Schnittstelle oder Basisklasse teilen.


Arten von Polymorphismus

In der OOP gibt es hauptsächlich zwei Arten von Polymorphismus:

  1. Ad-hoc-Polymorphismus: Dieser Typ wird meist durch Funktionsüberladung (Function Overloading) und Operatorenüberladung (Operator Overloading) erreicht.
  2. Subtyp-Polymorphismus: Auch bekannt als Vererbungspolymorphismus, ermöglicht es Objekten einer abgeleiteten Klasse, als Objekte der Basisklasse behandelt zu werden.


Implementierung und Anwendung


Implementierung in verschiedenen Programmiersprachen

Die Implementierung und Nutzung von Polymorphismus variiert zwischen verschiedenen Programmiersprachen:

  1. In Java wird Polymorphismus häufig durch Vererbung und das Überschreiben von Methoden (Method Overriding) sowie durch Interfaces realisiert.
  2. In C++ kann Polymorphismus durch Vererbung, virtuelle Funktionen und Templates erreicht werden.
  3. Python unterstützt Polymorphismus durch Duck Typing, wo die Methoden und Eigenschaften eines Objekts seine Zugehörigkeit zu einem Typ bestimmen.


Vorteile des Polymorphismus

Die Nutzung von Polymorphismus in der Programmierung bietet mehrere Vorteile:

  1. Flexibilität: Programme können allgemeiner und flexibler gestaltet werden.
  2. Wiederverwendbarkeit: Code kann leichter wiederverwendet werden, was die Entwicklung effizienter macht.
  3. Erweiterbarkeit: Software kann leichter erweitert und angepasst werden, ohne bestehenden Code umfassend ändern zu müssen.


Interaktive Aufgaben


Quiz: Teste Dein Wissen

Was beschreibt Polymorphismus in der OOP am besten? (Eine Eigenschaft von Objekten, verschiedene Formen anzunehmen) (!Ein spezifischer Algorithmus zur Datenverschlüsselung) (!Eine Technik zum Schreiben von fehlerfreiem Code) (!Eine Programmiersprache, die speziell für objektorientierte Programmierung entwickelt wurde)

Welche Art von Polymorphismus ermöglicht es, dass eine Variable der Basisklasse Instanzen von abgeleiteten Klassen halten kann? (Subtyp-Polymorphismus) (!Ad-hoc-Polymorphismus) (!Duck Typing) (!Templates)

Welche Programmiersprache implementiert Polymorphismus primär durch Duck Typing? (Python) (!Java) (!C++) (!C#)

Welcher Vorteil ist KEIN direktes Ergebnis des Polymorphismus? (!Automatische Fehlerkorrektur im Code) (Flexibilität) (Wiederverwendbarkeit) (Erweiterbarkeit)

Wie wird Polymorphismus in C++ hauptsächlich erreicht? (Durch Vererbung und virtuelle Funktionen) (!Durch statische Methoden und Klassen) (!Durch Inline-Funktionen) (!Durch Prozeduren)





Memory

Ad-hoc-Polymorphismus Funktionsüberladung
Subtyp-Polymorphismus Vererbung
Java Interfaces
Python Duck Typing
C++ Virtuelle Funktionen





Kreuzworträtsel

polymorphismus Fähigkeit von Objekten, viele Formen anzunehmen
vererbung Mechanismus zur Implementierung von Subtyp-Polymorphismus
ducktyping Typisierungsstil in Python, der Polymorphismus ermöglicht
interface Schnittstelle in Java zur Realisierung von Polymorphismus
template Technik in C++ zur Unterstützung von Ad-hoc-Polymorphismus
overload Vorgang der Funktionsüberladung
override Vorgang des Überschreibens von Methoden
virtuell Schlüsselwort für virtuelle Funktionen in C++




LearningApps

Lückentext

Vervollständige den Text.

Polymorphismus in der objektorientierten Programmierung ermöglicht, dass Objekte

durch die gleiche Schnittstelle behandelt werden können. Dies unterstützt die

und

von Code. Eine der Hauptarten des Polymorphismus ist der

, der durch Vererbung realisiert wird.


Offene Aufgaben


Leicht

  1. Implementiere eine einfache Vererbungshierarchie in Java: Erstelle zwei Klassen, von denen eine die Basisklasse für die andere ist. Implementiere eine Methode, die in der abgeleiteten Klasse überschrieben wird.
  2. Erkunde Duck Typing mit Python: Schreibe ein kleines Programm in Python, das Duck Typing demonstriert.
  3. Untersuche die Nutzung von Interfaces in Java: Erstelle ein Interface und zwei Klassen, die dieses Interface implementieren.

Standard

  1. Erstelle eine kleine Anwendung, die Polymorphismus nutzt: Entwickle eine Anwendung in einer Programmiersprache Deiner Wahl, die Polymorphismus zur Lösung eines Problems verwendet.
  2. Vergleiche Ad-hoc-Polymorphismus und Subtyp-Polymorphismus: Schreibe einen kurzen Bericht über die Unterschiede zwischen Ad-hoc-Polymorphismus und Subtyp-Polymorphismus.
  3. Diskutiere die Vorteile von Polymorphismus in der Softwareentwicklung: Führe ein Interview mit einem Softwareentwickler über die Rolle des Polymorphismus in der Softwareentwicklung.

Schwer

  1. Analysiere die Implementierung von Polymorphismus in verschiedenen Programmiersprachen: Vergleiche, wie Polymorphismus in mindestens drei verschiedenen Programmiersprachen implementiert wird.
  2. Entwirf ein komplexes System, das intensiv von Polymorphismus Gebrauch macht: Plane ein System, das verschiedene Aspekte von Polymorphismus nutzt, um flexible und wiederverwendbare Softwarekomponenten zu erstellen.
  3. Leite eine eigene Studie zur Effizienz von Polymorphismus in großen Softwareprojekten: Untersuche, wie Polymorphismus in großen Softwareprojekten zur Effizienzsteigerung beiträgt.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle


  1. Erkläre, wie Polymorphismus die Wartung von Software erleichtert: Diskutiere, wie Polymorphismus zur Vereinfachung der Wartung und Aktualisierung von Software beiträgt.
  2. Analysiere einen Codeausschnitt auf Polymorphismus: Gebe einen kurzen Codeausschnitt und erkläre, wie Polymorphismus in diesem Beispiel genutzt wird.
  3. Gestalte eine Aufgabe, die den Einsatz von Polymorphismus in einem realen Szenario erfordert: Entwickle eine Aufgabe, in der die Schüler einen realen Anwendungsfall für Polymorphismus in der Softwareentwicklung identifizieren und lösen müssen.



OERs zum Thema


Links

Teilen - Diskussion - Bewerten





Schulfach+

Prüfungsliteratur 2026 (Deutschland) – nach Bundesland & Abschlussart
Bundesland Bücher Kurzbeschreibung
Baden-Württemberg

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Heimsuchung - Jenny Erpenbeck

Mittlere Reife

  1. Der Markisenmann - Jan Weiler oder Als die Welt uns gehörte - Liz Kessler
  2. Ein Schatten wie ein Leopard - Myron Levoy oder Pampa Blues - Rolf Lappert

Abitur Dorfrichter-Komödie über Wahrheit/Schuld; Roman über einen Ort und deutsche Geschichte. Mittlere Reife Wahllektüren (Roadtrip-Vater-Sohn / Jugendroman im NS-Kontext / Coming-of-age / Provinzroman).

Bayern

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Heimsuchung - Jenny Erpenbeck

Abitur Lustspiel über Machtmissbrauch und Recht; Roman als Zeitschnitt deutscher Geschichte an einem Haus/Grundstück.

Berlin/Brandenburg

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Woyzeck - Georg Büchner
  3. Der Biberpelz - Gerhart Hauptmann
  4. Heimsuchung - Jenny Erpenbeck

Abitur Gerichtskomödie; soziales Drama um Ausbeutung/Armut; Komödie/Satire um Diebstahl und Obrigkeit; Roman über Erinnerungsräume und Umbrüche.

Bremen

Abitur

  1. Nach Mitternacht - Irmgard Keun
  2. Mario und der Zauberer - Thomas Mann
  3. Emilia Galotti - Gotthold Ephraim Lessing oder Miss Sara Sampson - Gotthold Ephraim Lessing

Abitur Roman in der NS-Zeit (Alltag, Anpassung, Angst); Novelle über Verführung/Massenpsychologie; bürgerliche Trauerspiele (Moral, Macht, Stand).

Hamburg

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Das kunstseidene Mädchen - Irmgard Keun

Abitur Justiz-/Machtkritik als Komödie; Großstadtroman der Weimarer Zeit (Rollenbilder, Aufstiegsträume, soziale Realität).

Hessen

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Woyzeck - Georg Büchner
  3. Heimsuchung - Jenny Erpenbeck
  4. Der Prozess - Franz Kafka

Abitur Gerichtskomödie; Fragmentdrama über Gewalt/Entmenschlichung; Erinnerungsroman über deutsche Brüche; moderner Roman über Schuld, Macht und Bürokratie.

Niedersachsen

Abitur

  1. Der zerbrochene Krug - Heinrich von Kleist
  2. Das kunstseidene Mädchen - Irmgard Keun
  3. Die Marquise von O. - Heinrich von Kleist
  4. Über das Marionettentheater - Heinrich von Kleist

Abitur Schwerpunkt auf Drama/Roman sowie Kleist-Prosatext und Essay (Ehre, Gewalt, Unschuld; Ästhetik/„Anmut“).

Nordrhein-Westfalen

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Heimsuchung - Jenny Erpenbeck

Abitur Komödie über Wahrheit und Autorität; Roman als literarische „Geschichtsschichtung“ an einem Ort.

Saarland

Abitur

  1. Heimsuchung - Jenny Erpenbeck
  2. Furor - Lutz Hübner und Sarah Nemitz
  3. Bahnwärter Thiel - Gerhart Hauptmann

Abitur Erinnerungsroman an einem Ort; zeitgenössisches Drama über Eskalation/Populismus; naturalistische Novelle (Pflicht/Überforderung/Abgrund).

Sachsen (berufliches Gymnasium)

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Woyzeck - Georg Büchner
  3. Irrungen, Wirrungen - Theodor Fontane
  4. Der gute Mensch von Sezuan - Bertolt Brecht
  5. Heimsuchung - Jenny Erpenbeck
  6. Der Trafikant - Robert Seethaler

Abitur Mischung aus Klassiker-Drama, sozialem Drama, realistischem Roman, epischem Theater und Gegenwarts-/Erinnerungsroman; zusätzlich Coming-of-age im historischen Kontext.

Sachsen-Anhalt

Abitur

  1. (keine fest benannte landesweite Pflichtlektüre veröffentlicht; Themenfelder)

Abitur Schwerpunktsetzung über Themenfelder (u. a. Literatur um 1900; Sprache in politisch-gesellschaftlichen Kontexten), ohne feste Einzeltitel.

Schleswig-Holstein

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Heimsuchung - Jenny Erpenbeck

Abitur Recht/Gerechtigkeit und historische Tiefenschichten eines Ortes – umgesetzt über Drama und Gegenwartsroman.

Thüringen

Abitur

  1. (keine fest benannte landesweite Pflichtlektüre veröffentlicht; Orientierung am gemeinsamen Aufgabenpool)

Abitur In der Praxis häufig Orientierung am gemeinsamen Aufgabenpool; landesweite Einzeltitel je nach Vorgabe/Handreichung nicht einheitlich ausgewiesen.

Mecklenburg-Vorpommern

Abitur

  1. (Quelle aktuell technisch nicht abrufbar; Beteiligung am gemeinsamen Aufgabenpool bekannt)

Abitur Land beteiligt sich am länderübergreifenden Aufgabenpool; konkrete, veröffentlichte Einzeltitel konnten hier nicht ausgelesen werden.

Rheinland-Pfalz

Abitur

  1. (keine landesweit einheitliche Pflichtlektüre; schulische Auswahl)

Abitur Keine landesweite Einheitsliste; Auswahl kann schul-/kursbezogen erfolgen.




aiMOOCs



aiMOOC Projekte












YouTube Music: THE MONKEY DANCE


Spotify: THE MONKEY DANCE


Apple Music: THE MONKEY DANCE

Amazon Music: THE MONKEY DANCE



The Monkey Dance SpreadShirtShop




The Monkey DanceaiMOOCs

  1. Trust Me It's True: #Verschwörungstheorie #FakeNews
  2. Gregor Samsa Is You: #Kafka #Verwandlung
  3. Who Owns Who: #Musk #Geld
  4. Lump: #Trump #Manipulation
  5. Filth Like You: #Konsum #Heuchelei
  6. Your Poverty Pisses Me Off: #SozialeUngerechtigkeit #Musk
  7. Hello I'm Pump: #Trump #Kapitalismus
  8. Monkey Dance Party: #Lebensfreude
  9. God Hates You Too: #Religionsfanatiker
  10. You You You: #Klimawandel #Klimaleugner
  11. Monkey Free: #Konformität #Macht #Kontrolle
  12. Pure Blood: #Rassismus
  13. Monkey World: #Chaos #Illusion #Manipulation
  14. Uh Uh Uh Poor You: #Kafka #BerichtAkademie #Doppelmoral
  15. The Monkey Dance Song: #Gesellschaftskritik
  16. Will You Be Mine: #Love
  17. Arbeitsheft
  18. And Thanks for Your Meat: #AntiFactoryFarming #AnimalRights #MeatIndustry


© The Monkey Dance on Spotify, YouTube, Amazon, MOOCit, Deezer, ...



Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen

Teilen Facebook Twitter Google Mail an MOOCit Missbrauch melden Zertifikat beantragen


0.00
(0 Stimmen)











Children for a better world >> Förderung der AI Fair-Image Challenge

Fair-Image wird von CHILDREN JUGEND HILFT! gefördert und ist mit der deutschlandweiten AI Fair-Image Challenge SIEGERPROJEKT 2025. Alle Infos zur Challenge hier >>. Infos zum Camp25 gibt es hier. Wenn auch Ihr Euch ehrenamtlich engagiert und noch finanzielle Unterstützung für Eurer Projekt braucht, dann stellt gerne einen Antrag bei JUGEND HILFT.