Sobes.tech
Junior

Welke aspecten van objectgeoriënteerd programmeren zijn aanwezig in de Dart-taal?

sobes.tech AI

Antwoord van AI

In Dart zijn de volgende aspecten van OOP:

  • Klassen en objecten: De mogelijkheid om klassen te definiëren met velden en methoden, en instanties van klassen (objecten) te maken.
  • Encapsulatie: Het verbergen van implementatiedetails via toegangsspecificaties (_ voor private leden) en getter/setter-methoden.
  • Erfelijkheid: Het uitbreiden van de functionaliteit van bestaande klassen met het sleutelwoord extends.
  • Polymorfisme: De mogelijkheid om objecten van verschillende klassen op een uniforme manier te behandelen via een gemeenschappelijk interface of basisklasse.
  • Abstractie: Het maken van abstracte klassen en interfaces om contracten te definiëren.

Voorbeeld van een klasse in Dart:

class Animal {
  String _name; // Privé veld

  Animal(this._name); // Constructor

  String get name => _name; // Getter

  void makeSound() {
    print('Enig dierengeluid'); // Methode
  }
}

Voorbeeld van overerving:

class Dog extends Animal {
  Dog(String name) : super(name); // Aanroep van de constructor van de basisklasse

  @override // Override van de basisklas-methode
  void makeSound() {
    print('Woef!');
  }
}

Voorbeeld van polymorfisme:

void makeAnimalSound(Animal animal) {
  animal.makeSound(); // Aanroep van de makeSound() methode, die voor verschillende Animal-typen anders kan zijn
}

// Gebruik:
// makeAnimalSound(Dog('Buddy')); // Zal "Woef!" afdrukken

Dart ondersteunt ook mixins met het sleutelwoord with, waarmee code van klassen hergebruikt kan worden zonder directe overerving.