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.