Dart Academy · Lektion

Abstrakte Klassen und Methoden

Festlegen, was Unterklassen implementieren müssen

Lektion 1 von 413 Schritte

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: abstract

Unterklassen 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() missing

Warum 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! 🎯

Kostenlos starten

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

  1. Abstrakte Klassen und Methoden
  2. Implizite Interfaces und implements
  3. Polymorphie durch gemeinsame Typen
  4. Komposition statt Vererbung
← Zurück zu Dart Academy