Abstrakte Klassen und Methoden
Festlegen, was Unterklassen implementieren müssen
Abstrakte Klassen und Methoden ist eine kostenlose Dart Academy-Lektion auf CoddyKit. Dies ist Lektion 1 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 abstract bedeutet
Eine abstrakte Klasse ist ein Entwurf, den Sie beschreiben, aber nicht direkt erstellen können. Sie dient zur Erweiterung und wird nicht eigenständig instanziiert.
Eine Klasse als abstrakt markieren
Setzen Sie das Schlüsselwort abstract vor class. Dadurch weiß Dart, dass die Klasse unvollständig ist und als gemeinsame Basisklasse dienen soll.
abstract class Shape {
double area();
}Abstrakte Methoden haben keinen Rumpf
Eine abstrakte Methode deklariert einen Namen und eine Signatur und endet mit einem Semikolon. Die eigentliche Arbeit bleibt damit den jeweiligen Unterklassen überlassen.
abstract class Shape {
double area(); // no body
}Sie können sie nicht instanziieren
Der Versuch, Shape() zu schreiben, führt zu einem Kompilierungsfehler. Dart verweigert dies, weil eine abstrakte Klasse unvollständig ist und keine konkrete Implementierung besitzt.
var s = Shape(); // error: abstractUnterklassen füllen die Lücken
Eine Unterklasse verwendet extends und muss für jede abstrakte Methode einen Rumpf bereitstellen. So wird aus dem Entwurf etwas Nutzbares.
class Circle extends Shape {
final double r;
Circle(this.r);
double area() => 3.14 * r * r;
}Auch konkrete Methoden sind möglich
Eine abstrakte Klasse kann vollständig implementierte konkrete Methoden enthalten. Unterklassen erben diese direkt und müssen nur die abstrakten Methoden ergänzen.
abstract class Shape {
double area();
void describe() => print('Area is ' + area().toString());
}Felder in abstrakten Klassen
Abstrakte Klassen können auch Felder und Konstruktoren enthalten. Diese werden ausgeführt, wenn eine Unterklasse erstellt wird, sodass gemeinsamer Zustand in der Basisklasse liegen kann.
abstract class Shape {
final String name;
Shape(this.name);
}Der Compiler erzwingt den Vertrag
Wenn eine Unterklasse eine abstrakte Methode vergisst, meldet Dart einen Fehler, bevor Sie den Code überhaupt ausführen. Der Vertrag wird automatisch geprüft.
class Square extends Shape {} // error: area() missingWarum abstrakte Klassen verwenden?
Sie ermöglichen es mehreren Typen, dieselbe Struktur zu teilen, und stellen gleichzeitig sicher, dass jeder sein eigenes Verhalten bereitstellt. Sie entwerfen einmal einen klaren Vertrag und verwenden ihn überall wieder.
Abstrakte Getter
Sie können nicht nur Methoden abstrakt lassen. Ein Getter ohne Rumpf funktioniert genauso und muss von den Unterklassen definiert werden.
abstract class Shape {
String get label;
}Abstrakte Referenzen speichern
Sie können jede Unterklasse in einer Variable speichern, die als abstrakte Klasse typisiert ist. Der Typ verspricht ein bestimmtes Verhalten, ohne eine konkrete Klasse zu benennen.
Shape s = Circle(2);
print(s.area());Kurze Überprüfung
Eine kurze Frage zu abstrakten Klassen.
Zusammenfassung
Abstrakte Klassen sind Entwürfe, die Sie erweitern, nicht instanziieren. Abstrakte Methoden haben keinen Rumpf, und konkrete Unterklassen müssen sie implementieren. Gute Arbeit! 🎯
Lerne Dart mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „Abstrakte Klassen und Methoden“ kostenlos?
Ja — der vollständige Text von „Abstrakte Klassen und Methoden“ 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 „Abstrakte Klassen und Methoden“?
Festlegen, was Unterklassen implementieren müssen 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 1 von 4.
Wie lange dauert die Lektion „Abstrakte Klassen und Methoden“?
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