À retenir
- C'est une généralisation d'un concept.
- Il transmet ses caractéristiques aux types inférieurs (sous-types).
- Il est au cœur de la réutilisation de code en POO.
En programmation, un super-type est une catégorie de données large et générale qui sert de modèle à des catégories plus précises. Imaginez que 'Animal' soit un super-type : il définit des points communs (respirer, manger) que partageront ses variantes comme 'Chien' ou 'Chat'.
Étymologie
Composé du préfixe latin super- (signifiant « au-dessus ») et du mot type (modèle ou catégorie). Le terme reflète la hiérarchie dans le code, où le super-type se situe au sommet de l'arborescence.
Exemples d'usage
- Dans un logiciel de gestion,
Utilisateurest le super-type des classesAdministrateuretClient. - En langage Java ou C#, la classe
Objectest le super-type universel dont héritent presque tous les autres éléments.
Cas d'usage
Le super-type intervient principalement en Programmation Orientée Objet (POO). Il permet d'organiser le code par 'héritage' pour éviter de réécrire les mêmes fonctions dans plusieurs classes similaires et facilite le polymorphisme (traiter différents objets de façon uniforme).
Bonnes pratiques
Évitez de créer des super-types trop complexes ou 'fourre-tout' (parfois appelés God Objects). Un bon super-type doit rester une abstraction logique et cohérente pour ne pas polluer les sous-types avec des fonctionnalités inutiles.
Synonymes
Antonymes
Conseil
Pour bien comprendre, dessinez une arborescence généalogique : le super-type est le grand-parent qui donne ses traits de caractère à toute la famille. Si vous hésitez à créer un super-type, demandez-vous si la relation 'est un' est respectée (ex: un Chien 'est un' Animal).
Questions fréquentes
Quelle est la différence entre super-type et classe parente ?
Dans la plupart des contextes de programmation, ces termes sont synonymes. Le terme 'super-type' est cependant plus large car il peut aussi englober les interfaces.
Un super-type peut-il être instancié ?
Pas toujours. S'il est déclaré comme 'abstrait', il sert uniquement de base de construction et on ne peut pas créer d'objet directement à partir de lui.