Classe abstraite
Classe qui ne peut pas être instanciée directement — seulement héritée. Définit une implémentation partielle avec des méthodes que les sous-classes doivent implémenter.
À distinguer de l'interface : une classe abstraite peut avoir des champs et une implémentation partielle ; une interface ne contient que des signatures de méthodes. En Java, abstract class + abstract method ; en C++, des fonctions virtuelles pures = 0 ; en Python, ABC + @abstractmethod. Rust n'a pas d'héritage du tout — il utilise les traits à la place.