Qu'est-ce que la classe de base?
Une classe de base, également appelée superclasse, est un objet informatique servant de base à une ou plusieurs classes dérivées. Tout langage informatique capable d'héritage peut créer une classe de base. Selon leur type précis, les classes de base peuvent ou non être capables d'initialisation (attribution d'une valeur initiale à un objet), mais elles offrent toujours une fonctionnalité commune à toute classe qui en hérite. Il n'y a jamais de limite au nombre de classes dérivées, ou sous-classes, que peuvent avoir les classes de base, mais il peut y avoir une limite, en fonction du langage informatique, au nombre de classes de base qu'une classe dérivée peut avoir. Les langues qui permettent à une classe dérivée de ne posséder qu'une seule base sont réputées appliquer un seul héritage, alors que celles qui permettent à une classe dérivée de disposer de plusieurs classes de base utilisent plusieurs héritages.
Les classes de base concrètes peuvent être initialisées par elles-mêmes; c'est-à-dire qu'un objet du type classe de base peut être créé. Si une classe Example est la base d'une classe dérivée Example2, vous pouvez créer un objet de type Example2 et un objet de type Example. Un objet de type Example ne peut être créé qu’en appelant explicitement ce type d’objet; créer un objet de type Example2 ne crée pas un objet secondaire de type Example. Dans chaque cas, le type d'objet créé crée uniquement une instance de celui-ci.
Les classes de base abstraites, en revanche, ne peuvent pas être initialisées seules, ce qui signifie qu'un objet de la classe de base ne peut pas être créé seul. Si une classe Example3 est une base abstraite pour une classe dérivée Example4, seul un objet de type Example4 peut être créé. Même si le type Example4 inclut des données du type Example3, toute tentative visant à créer un objet uniquement du type Example3 entraînera une erreur. Cette fonctionnalité peut être utile parfois, en particulier si la classe Example3 contient des données privées qui doivent être strictement réglementées.
Selon la langue dans laquelle elle apparaît, une classe de base peut avoir des comportements légèrement différents et des noms très différents. En Java®, les classes de base sont toujours désignées par ce nom, tandis qu'en C ++, en fonction de leur structure, elles peuvent être appelées classes virtuelles. Les différences de nom et de fonctionnalité, bien que significatives en termes de langages informatiques utilisés, n'impliquent pas de différences majeures dans le principe des classes. Une classe de base est toujours utilisée pour encapsuler des fonctionnalités et des données communes pour ses classes dérivées, quelle que soit la langue.