Polymorphie durch gemeinsame Typen
Gegen einen Typ programmieren, nicht gegen eine Klasse
Polymorphie durch gemeinsame Typen ist eine kostenlose Dart Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Dart Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Was Polymorphie bedeutet
Polymorphie ermöglicht es, einen Typ stellvertretend für viele zu verwenden. Sie rufen eine Methode auf einem gemeinsamen Typ auf, und jedes Objekt reagiert auf seine eigene Weise.
Für einen Typ programmieren
Statt eine konkrete Klasse zu benennen, verlassen Sie sich auf einen gemeinsamen Supertyp. Ihr Code funktioniert mit allem, was dieser Struktur entspricht.
void render(Shape s) => print(s.area());Ein gemeinsamer Basistyp
Beginnen Sie mit einer abstrakten Basisklasse, die die gemeinsame Methode deklariert, die jeder Subtyp auf seine eigene Weise bereitstellt.
abstract class Shape {
double area();
}Viele Subtypen, eine Form
Jeder Subtyp implementiert area auf seine eigene Weise, aber alle werden weiterhin als Shape behandelt.
class Circle extends Shape {
double area() => 28.3;
}Dynamischer Dispatch
Zur Laufzeit wählt Dart die Methode des tatsächlichen Objekts aus. Dieser Dispatch sorgt dafür, dass derselbe Aufruf je nach Objekt unterschiedlichen Code ausführt.
Shape s = Circle();
s.area(); // runs Circle.areaEine Liste verschiedener Shapes
Da sie einen Typ gemeinsam haben, können Sie gemischte Objekte in einer List sammeln und einheitlich behandeln.
List<Shape> shapes = [Circle(), Square()];Polymorphes Durchlaufen
Eine Schleife verarbeitet jede Shape. Sie müssen nicht nach der konkreten Klasse unterscheiden; das richtige area wird einfach ausgeführt.
for (var s in shapes) {
print(s.area());
}Offen für Erweiterungen
Fügen Sie später einen völlig neuen Shape-Subtyp hinzu, und bestehende Schleifen verwenden ihn sofort. Polymorphie hält den Code für weiteres Wachstum offen.
class Triangle extends Shape {
double area() => 12.0;
}Interfaces funktionieren genauso
Gemeinsame Typen können auch durch implements entstehen. Jede Klasse, die das Interface implementiert, lässt sich direkt in denselben Code einfügen.
void log(Printable p) => p.printOut();Keine Typprüfungen nötig
Guter polymorpher Code verwendet selten is-Prüfungen. Der gemeinsame Typ garantiert bereits, dass die Methode existiert, und hält die Logik übersichtlich.
Warum das wichtig ist
Polymorphie beseitigt lange If-Else-Ketten und wiederholte Switch-Anweisungen. Sie schreiben flexiblen Code, der sich ohne Änderungen an neue Typen anpasst. 🌱
Kurztest
Eine kurze Frage zur Polymorphie.
Zusammenfassung
Polymorphie bedeutet, für einen gemeinsamen Typ zu programmieren, während sich jedes Objekt auf seine eigene Weise verhält. Dadurch bleibt der Code flexibel und offen für neue Subtypen. ✨
Häufig gestellte Fragen
Ist die Lektion „Polymorphie durch gemeinsame Typen“ kostenlos?
Ja — der vollständige Text von „Polymorphie durch gemeinsame Typen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Dart Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Polymorphie durch gemeinsame Typen“?
Gegen einen Typ programmieren, nicht gegen eine Klasse Du übst Dart Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Dart Academy zu starten?
Keine Vorkenntnisse erforderlich. Dart Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Polymorphie durch gemeinsame Typen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Dart Academy-Lektion Code schreiben und ausführen?
Ja. Jede Dart Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Abstrakte Klassen und Methoden
- Implizite Interfaces und implements
- Polymorphie durch gemeinsame Typen
- Komposition statt Vererbung