Vous êtes sur la page 1sur 3

ENSPD/ROI 4 & TAU 4 Chapitre 3 POO&BD

CHAPITRE 3

SOUS CLASSE, CLASSE ABSTRAITE ET


INTERFACE

1. Sous classe

1.1. Définition

En programmation orientée objet (POO), une sous classe est une classe qui
prolonge l’existence d’une autre classe dans l’optique d’hériter d’une partie ou de la
totalité de ses membres (de la classe prolongé encore appelée classe mère ou classe
parente).

1.2. L’héritage

En programmation orientée objet, l’héritage est un mécanisme qui permet, lors de


la déclaration d’une nouvelle classe, d'y inclure automatiquement les
caractéristiques d’une autre classe existante.
La classe mère transmet systématiquement à toutes ses futurs sous classe tous ses
éléments ayant la portée protégé.

1.3. Redéfinition

Dans la sous classe, les éléments de la classe mère avec la portée protégé sont
directement accessibles. Si l’élément de la classe mère a un comportement pas
souhaité pour la sous classe, cette dernière à la possibilité de créer le même
élément (même nom et même signature) dans la classe.
L’élément redéfini dans la sous classe est prioritaire dans la sous et par
conséquent masque (mais ne supprime pas) l’élément existant dans la classe mère.

2. Classe abstraite

2.1. Définition

En programmation orientée objet (POO), une classe abstraite est une classe dont
l'implémentation n'est pas complète et qui n'est pas instanciable. Elle sert de
base à d'autres classes dérivées (héritées).

Le mécanisme des classes abstraites permet de définir des comportements


(méthodes) dont l'implémentation (le code dans la méthode) se fait dans les classes
filles. Ainsi, on a l'assurance que les classes filles respecteront le contrat défini par
la classe mère abstraite. Ce contrat est une interface de programmation.

Prenons l'exemple suivant : vous avez une classe Humain, à partir de laquelle
dérivent la classe Homme et la classe Femme. En toute logique, Homme et
Femme sont instanciables (les objets créés ont une existence en soi), mais la classe

© TAWAMBA KOUAKAM Lorince S. Année 2020-2021 Page 1/3


ENSPD/ROI 4 & TAU 4 Chapitre 3 POO&BD

Humain sera déclarée abstraite car un objet Humain n'existe pas en tant que tel,
puisqu'il manque l'information sur le sexe. Ici, la classe Humain servira à
implémenter des méthodes qui seront utilisées à la fois pour Homme et pour
Femme.

NB : La classe abstraite est véritablement exploité que via une sous classe à
condition que la sous classe redéfini tous les éléments abstrait de la classe mère.

2.2. Méthode abstraite

En programmation orientée objet (POO), une méthode abstraite est une méthode
qui n’a pas de corps (pas de traitement). La méthode abstraite rend
automatiquement sa classe abstraite.

3. Interface

En programmation orientée objet (POO), une interface est une entité qui liste des
méthodes dont on donne seulement la signature (on parle aussi de méthode
abstraite).

Elle représente un "contrat", ce qu'on attend d'un objet. L’interface peut être
implémentée par une ou plusieurs classes qui doivent donner une implémentation
pour chacune des méthodes annoncées (et éventuellement d'autres).
Une classe peut implémenter plusieurs interfaces (permettant un héritage
multiple, en les séparant par des virgules).

Toutes les méthodes d'une interface sont implicitement abstraites. Une interface
n'a pas de constructeurs. Une interface ne peut avoir de champs sauf si ceux-ci
sont statiques. Une interface peut être étendue par une ou plusieurs autre(s)
interface(s). En fait, une interface est une classe abstraite dont toutes les
méthodes sont abstraites et dont tous les attributs sont constants.

4. Polymorphisme

En programmation orientée objet (POO), le polymorphisme c’est le mécanisme


qui permet au compilateur de déterminer dynamiquement au moment de
l’exécution la bonne méthode à invoquer (à exécuter).

Soient les classes suivantes :

Classe Etudiant Classe Délégué  sous classe de Etudiant


protégé matricule
protégé nom
protégé age
protégé manger() protégé manger()

© TAWAMBA KOUAKAM Lorince S. Année 2020-2021 Page 2/3


ENSPD/ROI 4 & TAU 4 Chapitre 3 POO&BD

NB : Là où on attend un objet de la classe mère, on peut placer un objet de sa sous


classe mais l’inverse n’est pas vrai.
Dans notre cas, là où un objet de Etudiant est attendu, on peut placer un objet de
Délégué.

Soit une variable tab tableau d’Etudiant

tab etud1 etud2 del1 del2 etud3

Pour i allant de 1 à 5 faire


tab[i].manger() /* Cette ligne fonctionne grâce au polymorphisme */
Fin pour

© TAWAMBA KOUAKAM Lorince S. Année 2020-2021 Page 3/3

Vous aimerez peut-être aussi