Sobes.tech
Junior

Welche Aspekte der objektorientierten Programmierung sind in der Sprache Dart vorhanden?

sobes.tech KI

Antwort von AI

In Dart gibt es die folgenden Aspekte der OOP:

  • Klassen und Objekte: Die Möglichkeit, Klassen mit Feldern und Methoden zu definieren, Instanzen von Klassen (Objekte) zu erstellen.
  • Kapselung: Verbergen von Implementierungsdetails durch Zugriffsmethoden (_ für private Mitglieder) und Getter/Setter-Methoden.
  • Vererbung: Erweiterung der Funktionalität bestehender Klassen mit dem Schlüsselwort extends.
  • Polymorphismus: Die Fähigkeit, Objekte verschiedener Klassen einheitlich über eine gemeinsame Schnittstelle oder Basisklasse zu behandeln.
  • Abstraktion: Erstellen abstrakter Klassen und Schnittstellen zur Definition von Verträgen.

Beispiel einer Klasse in Dart:

class Animal {
  String _name; // Privates Feld

  Animal(this._name); // Konstruktor

  String get name => _name; // Getter

  void makeSound() {
    print('Ein generisches Tiergeräusch'); // Methode
  }
}

Beispiel für Vererbung:

class Dog extends Animal {
  Dog(String name) : super(name); // Aufruf des Konstruktors der Basisklasse

  @override // Überschreiben der Basisklassenmethode
  void makeSound() {
    print('Wuff!');
  }
}

Beispiel für Polymorphismus:

void makeAnimalSound(Animal animal) {
  animal.makeSound(); // Aufruf der Methode makeSound(), die für verschiedene Animal-Typen unterschiedlich sein kann
}

// Verwendung:
// makeAnimalSound(Dog('Buddy')); // Gibt "Wuff!" aus

Dart unterstützt auch Mixins mit dem Schlüsselwort with, was die Wiederverwendung von Klassen-Code ohne direkte Vererbung ermöglicht.