...
FinClasse
Avec l’héritage, vous pouvez concevoir des classes de plus en plus spécialisées. De même si vous devez concevoir
des classes dont les propriétés sont très proches, plutôt que de tout reprogrammer depuis zéro, vous pouvez
concevoir une classe de base (la superclasse) et créer deux classes qui héritent de celleci.
Donnez un ou deux noms d’animaux dans chaque catégorie. La vache est herbivore, le cheval aussi. Les deux n’ont
pas le même régime, et pas le même nombre d’estomacs. Vous pouvez les différencier dans deux classes différentes
qui dérivent de la classe herbivore :
Classe cheval hérite de herbivore
...
FinClasse
Classe vache hérite de herbivore
...
FinClasse
Vous pouvez faire de même avec les carnivores : lion, chien, et les omnivores : l’homme, le singe. Vous constituez
donc un ensemble de classes dérivées de plus en plus spécialisées.
Dans une classe dérivée, vous avez un accès direct aux membres, tant les attributs que les méthodes, de toutes les
superclasses d’origine, en cascade. Donc ceci est correct, partant du principe que omnivore dérive de animal vous
pouvez appeler la méthode modifie_ordre() de la superclasse animal.
Programme obj4
Var
o3:herbivore
Début
o3.modifie_ordre(mammifère)
Fin
Rappelezvous cependant que l’accès aux attributs dépend de leur protection. Si les attributs de la superclasse sont
privés, une classe dérivée ne peut pas y accéder directement. Si elle est protégée ou publique, c’est possible.
b. Commerce
L’avantage est de taille, tellement qu’il existe pour des langages comme C++ ou Java des éditeurs de logiciels
spécialisés dans la vente de classes, regroupées sous forme de bibliothèques. Il existe donc un commerce d’objets et
comme les classes sont des moules réutilisables à volonté tout le monde y trouve son compte. Vous trouverez ces
produits sous le nom d’API : Application Programming Interface, et il existe des API pour à peu près tous les domaines
de l’informatique : telle API pour accéder plus facilement aux bases de données, telle API pour aider au
développement d’un logiciel de gestion de cabinet médical, etc. Vous trouverez sur Internet des sites spécialisés
dans la diffusion, souvent gratuite, de classes très pratiques. Si la classe de base de Java pour la gestion des
tableaux ne vous suffit pas, vous pourrez en trouver d’autres qui proposeront tous les types de tri, de reconstituer
une chaîne, d’allouer dynamiquement des éléments supplémentaires, qui gèreront les listes chaînées à votre place,
etc. Tout est possible.
En une phrase, la grande force de l’objet est d’être réutilisable, accélérant ainsi le développement d’application par
l’utilisation de composants déjà testés et validés.
c. Hiérarchie
Quand une classe hérite d’une autre, on dit que c’est une classe fille (et l’objet résultat un fils). Il y a donc une
relation hiérarchique reprise sur la généalogie. Il y a des objets père, grandpère, etc, jusqu’à une classe de base.
Comme plusieurs classes distinctes peuvent dériver d’une superclasse, et que d’autres encore peuvent dériver en
cascade des nouvelles classes, vous obtenez un hiérarchie entre les classes, un arbre des classes (et objets
associés), comme un arbre généalogique : une classe de base a tant de fils, qui ont euxmêmes tant de fils et ainsi
de suite. Cette hiérarchie décrit une arborescence.
C’est flagrant en Java où toutes les classes héritent à la base d’une seule superclasse appelée Object. Cette classe
sert de prototype, de base, pour toutes les autres. Toutes les classes proposées par défaut par Java (toutes les API
du SDK) dérivent de la classe Object. La classe Object propose des méthodes qui sont toutes réimplémentées dans
les classes dérivées. La classe Object est donc la superclasse de toutes les classes Java.
Si vous reprenez l’exemple des régimes alimentaires du règne animal, vous obtenez une arborescence de ce genre :
- 10 -
© ENI Editions - All rigths reserved - Jonifar lina
203
FinClasse
Avec l’héritage, vous pouvez concevoir des classes de plus en plus spécialisées. De même si vous devez concevoir
des classes dont les propriétés sont très proches, plutôt que de tout reprogrammer depuis zéro, vous pouvez
concevoir une classe de base (la superclasse) et créer deux classes qui héritent de celleci.
Donnez un ou deux noms d’animaux dans chaque catégorie. La vache est herbivore, le cheval aussi. Les deux n’ont
pas le même régime, et pas le même nombre d’estomacs. Vous pouvez les différencier dans deux classes différentes
qui dérivent de la classe herbivore :
Classe cheval hérite de herbivore
...
FinClasse
Classe vache hérite de herbivore
...
FinClasse
Vous pouvez faire de même avec les carnivores : lion, chien, et les omnivores : l’homme, le singe. Vous constituez
donc un ensemble de classes dérivées de plus en plus spécialisées.
Dans une classe dérivée, vous avez un accès direct aux membres, tant les attributs que les méthodes, de toutes les
superclasses d’origine, en cascade. Donc ceci est correct, partant du principe que omnivore dérive de animal vous
pouvez appeler la méthode modifie_ordre() de la superclasse animal.
Programme obj4
Var
o3:herbivore
Début
o3.modifie_ordre(mammifère)
Fin
Rappelezvous cependant que l’accès aux attributs dépend de leur protection. Si les attributs de la superclasse sont
privés, une classe dérivée ne peut pas y accéder directement. Si elle est protégée ou publique, c’est possible.
b. Commerce
L’avantage est de taille, tellement qu’il existe pour des langages comme C++ ou Java des éditeurs de logiciels
spécialisés dans la vente de classes, regroupées sous forme de bibliothèques. Il existe donc un commerce d’objets et
comme les classes sont des moules réutilisables à volonté tout le monde y trouve son compte. Vous trouverez ces
produits sous le nom d’API : Application Programming Interface, et il existe des API pour à peu près tous les domaines
de l’informatique : telle API pour accéder plus facilement aux bases de données, telle API pour aider au
développement d’un logiciel de gestion de cabinet médical, etc. Vous trouverez sur Internet des sites spécialisés
dans la diffusion, souvent gratuite, de classes très pratiques. Si la classe de base de Java pour la gestion des
tableaux ne vous suffit pas, vous pourrez en trouver d’autres qui proposeront tous les types de tri, de reconstituer
une chaîne, d’allouer dynamiquement des éléments supplémentaires, qui gèreront les listes chaînées à votre place,
etc. Tout est possible.
En une phrase, la grande force de l’objet est d’être réutilisable, accélérant ainsi le développement d’application par
l’utilisation de composants déjà testés et validés.
c. Hiérarchie
Quand une classe hérite d’une autre, on dit que c’est une classe fille (et l’objet résultat un fils). Il y a donc une
relation hiérarchique reprise sur la généalogie. Il y a des objets père, grandpère, etc, jusqu’à une classe de base.
Comme plusieurs classes distinctes peuvent dériver d’une superclasse, et que d’autres encore peuvent dériver en
cascade des nouvelles classes, vous obtenez un hiérarchie entre les classes, un arbre des classes (et objets
associés), comme un arbre généalogique : une classe de base a tant de fils, qui ont euxmêmes tant de fils et ainsi
de suite. Cette hiérarchie décrit une arborescence.
C’est flagrant en Java où toutes les classes héritent à la base d’une seule superclasse appelée Object. Cette classe
sert de prototype, de base, pour toutes les autres. Toutes les classes proposées par défaut par Java (toutes les API
du SDK) dérivent de la classe Object. La classe Object propose des méthodes qui sont toutes réimplémentées dans
les classes dérivées. La classe Object est donc la superclasse de toutes les classes Java.
Si vous reprenez l’exemple des régimes alimentaires du règne animal, vous obtenez une arborescence de ce genre :
- 10 -
© ENI Editions - All rigths reserved - Jonifar lina
203
