Sobes.tech
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.