Sobes.tech
Junior — Middle

Pouvez-vous expliquer ce que signifie la notion de classe abstraite en programmation orientée objet?

sobes.tech IA

Réponse de l'IA

Une classe abstraite en programmation orientée objet est une classe qui n'est pas destinée à créer directement des instances. Elle sert de modèle pour d'autres classes et peut contenir des méthodes implémentées ainsi que des méthodes abstraites (sans implémentation), qui doivent être implémentées dans les sous-classes.

Par exemple, en Dart (le langage Flutter), une classe abstraite est déclarée avec le mot-clé abstract :

abstract class Animal {
  void makeSound(); // méthode abstraite

  void breathe() {
    print('Respire'); // méthode implémentée
  }
}

class Dog extends Animal {
  @override
  void makeSound() {
    print('Wouf');
  }
}

void main() {
  // Animal animal = Animal(); // Erreur : impossible de créer une instance d'une classe abstraite
  Dog dog = Dog();
  dog.makeSound(); // Wouf
  dog.breathe();   // Respire
}

Ainsi, la classe abstraite définit une interface générale et une fonctionnalité de base, tandis que les classes concrètes en implémentent les détails.