L’héritage
CHAPITRE 12
264
de privilégier les classes dérivées par rapport aux autres, en permettant à leurs méthodes
d’accéder à des attributs théoriquement encapsulés. La plupart du temps, cette « gestion » des
droits d’accès se fait à l’aide d’un statut intermédiaire (nommé souvent protégé) entre le statut public et le statut privé Les membres protégés de la classe de base :
• sont accessibles aux méthodes de la classe dérivée (comme s’ils étaient publics) et non accessibles aux objets de cette classe (comme s’ils étaient privés) ;
• conservent leur statut protégé dans les classes dérivées.
Certains langages permettent également de réduire les droits d’accès au moment de la
définition de la classe dérivée (voir la rubrique « Côté langages » à la fin de ce chapitre).
Côté langages
Comparons C++, Java, C# et PHP, sur le plan de la syntaxe de la dérivation, de la gestion des constructeurs et des critères de redéfinition.
Syntaxe de la dérivation et droits d’accès
C#
Les membres d’une classe disposent de trois statuts : private, protected et public. Le statut protected correspond au statut protégé qui a été présenté précédemment. C# dispose également d’un
statut internal, concernant les classes d’un même fichier. Les dérivations se notent ainsi :
class B : A
Java
Les membres d’une classe disposent également de trois statuts : private, protected et public.
Mais, curieusement, le statut protected s’applique, non seulement aux classes dérivées, mais aussi à
toutes les classes d’un même ensemble nommé « paquetage ». Cette confusion lui fait perdre de l’intérêt
et, en pratique, il est peu utilisé. Les dérivations se notent ainsi :
class B extends A
PHP
Là encore, les membres d’une classe disposent des trois statuts : private, protected et public. Le
statut protected ne concerne que les classes dérivées. Les dérivations se notent ainsi :
class Pointcol extends Point
Précédent

- 287/370

Suivant