Junior
Quels aspects de la programmation orientée objet sont présents dans le langage Dart?
sobes.tech IA
Réponse de l'IA
En Dart, il existe les aspects suivants de la POO :
- Classes et objets : La capacité de définir des classes avec des champs et des méthodes, de créer des instances de classes (objets).
- Encapsulation : Cacher les détails d’implémentation à l’aide de modificateurs d’accès (
_pour les membres privés) et de méthodes getters/setters. - Héritage : Étendre la fonctionnalité des classes existantes à l’aide du mot-clé
extends. - Polymorphisme : La capacité de traiter des objets de différentes classes de manière uniforme via une interface commune ou une classe de base.
- Abstraction : Créer des classes abstraites et des interfaces pour définir des contrats.
Exemple de classe en Dart :
class Animal {
String _name; // Champ privé
Animal(this._name); // Constructeur
String get name => _name; // Getter
void makeSound() {
print('Un son générique d’animal'); // Méthode
}
}
Exemple d’héritage :
class Dog extends Animal {
Dog(String name) : super(name); // Appel au constructeur de la classe de base
@override // Redéfinition de la méthode de la classe de base
void makeSound() {
print('Wouf!');
}
}
Exemple de polymorphisme :
void makeAnimalSound(Animal animal) {
animal.makeSound(); // Appel de la méthode makeSound(), qui peut être différente selon le type d’Animal
}
// Utilisation :
// makeAnimalSound(Dog('Buddy')); // Affichera "Wouf!"
Dart supporte également les mixins avec le mot-clé with, permettant de réutiliser du code de classes sans héritage direct.