Klassen bündeln Eigenschaften und Methoden. Der Konstruktor kann Felder direkt setzen (Person(this.name, this.alter);). Namen, die mit _ beginnen, sind privat für die Bibliothek (Datei). Getter definierst du mit get. Vererbung mit extends, Mehrfachverhalten mit Mixins (with).
Mit abstract class beschreibst du Verträge, die Unterklassen erfüllen.
class Konto {
final String inhaber;
double _stand = 0;
Konto(this.inhaber);
double get stand => _stand;
void einzahlen(double betrag) {
if (betrag > 0) _stand += betrag;
}
}
class Tier { String laut() => '...'; }
class Hund extends Tier {
@override
String laut() => 'Wuff';
}
void main() {
final k = Konto('Mia')..einzahlen(50);
print(k.stand);
print(Hund().laut());
}Merke
this.feldim Konstruktor setzt Felder_nameist privat..verkettet Aufrufe (Kaskade)
Aufgabe
Ergänze `abheben` mit einer Prüfung auf ausreichenden Stand.