Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

Java - L'héritage

Java - L'héritage Encyclopédie


La notion d'héritage

Le concept d'héritage est un des concepts les plus importants de la programmation orientée objet, car il conditionne irréversiblement la façon selon laquelle un code Java est écrit. L'héritage est un mécanisme permettant de créer une nouvelle classe à partir d'une classe existante en lui proférant ses propriétés et ses méthodes.

Ainsi, pour définir une nouvelle classe, il suffit de la faire hériter d'une classe existante et de lui ajouter de nouvelles propriétés/méthodes.

De cette façon, les classes héritées forment une hiérarchie descendante, au sommet de laquelle se situe la classe de base (superclasse). On appelle également la classe héritée la sous-classe et la classe parente la super-classe.

arborescence des classe

Avec Java, l'arborescence est stricte, c'est-à-dire qu'une classe donnée ne peut possèder qu'une seule superclasse (l'héritage est dit simple contrairement à des langages comme le C++, pour lesquels un héritage dit multiple est possible). Par contre, une classe peut possèder un nombre illimité de sous-classes.

Lors de l'instanciation d'une classe, celle-ci hérite de (cela signifie qu'elle reçoit) l'ensemble des propriétés et des méthodes de sa superclasse, qui elle-même hérite d'une éventuelle superclasse, etc.
Par conséquent le travail principal du programmeur Java consiste à concevoir une hiérarchie de classe, c'est-à-dire organiser les classes de telles façon que les propriétés et méthodes communes à plusieurs classes soient placées dans une superclasse.

Grâce à ce système organisationnel, il est aisé de réutiliser des composants existants et de leur ajouter un comportement. De plus, la modification de la superclasse implique la modification automatique de toutes les sous-classes. Pour plus d'informations sur l'héritage, consulter la section "programmation orientée objet"

L'héritage avec Java

Une classe se définit tout simplement grâce au mot-clé class de la manière suivante par exemple :

class Ccm {
	// Corps de la classe 
}
Par défaut une classe hérite de la "super-superclasse" nommée Object. Pour faire hériter une classe d'une superclasse, Java fournit le mot-clé extends, c'est-à-dire que les quelques lignes de code ci-dessus sont équivalentes à:

class Ccm extends Object {
	// Corps de la classe 
}

Le mot-clé super

Au même titre que le mot-clé this permet de faire référence à l'objet en cours, le mot-clé super permet de désigner la superclasse, c'est-à-dire qu'à l'aide du mot-clé super, il est possible de manipuler les données membres et les méthodes de la superclasse.

Pour manipuler une proriété de la superclasse, il suffit d'utiliser la syntaxe suivante :

super.nom_de_la_propriete

De la même façon, pour manipuler une méthode de la superclasse, il suffit d'utiliser la syntaxe suivante :

super.nom_de_la_methode()

Enfin, il est possible de faire appel au constructeur de la classe parente en fournissant des arguments au mot-clé super de la façon suivante :

super(parametre1,parametre2,...)

Remplacer une méthode existante de la superclasse

Lorsqu'une classe hérite de sa superclasse, elle hérite de ses méthodes, c'est-à-dire qu'elle possède les mêmes méthodes que sa superclasse.

Il est possible de redéfinir totalement une méthode en la redéfinissant (mêmes nombres et types d'arguments que la méthode de la superclasse). De cette façon, la méthode originale est ignorée au profit de sa redéfinition.

Ajouter un comportement à une méthode de la superclasse

La redéfinition d'une méthode consiste à réécrire totalement la méthode initiale. Il est parfois utile de simplement ajouter un comportement au comportement original, pour cela l'utilisation du mot-clé super s'avère nécessaire. En appelant le constructeur de la superclasse dans le corps de la méthode qui la redéfinit, et en ajoutant de nouvelles instructions, la méthode originale est dotée de comportements supplémentaires.

Trucs & astuces pertinents trouvés dans la base de connaissances

18/12 20h18 Installation firefox 2.0+java+flash (Logiciel libre)
18/11 00h43 JavaScript c'est la même chose que Java (Mythes et légendes)
07/10 21h20 2 bons livres pour Java et C++ (Langages)
03/10 15h46 Créer une applet qui accède au disque dur (Programmation)
04/09 10h44 plugin Java Jre de Sun (Mozilla Firefox)
15/05 20h49 Gestion des plug-ins (Navigateurs)
30/12 22h10 Java Runtime Machine (Navigateurs)
heritage java Plus d'astuces sur « heritage java »

Discussions pertinentes trouvées dans le forum

08/03 10h30 heritage classes java heritage classes en java Développement 09/03 07h59->choubaka5
18/07 11h49 heritage java heritage java Développement 18/07 13h39->Samya11
18/12 23h51 héritage java héritage en java Développement 20/12 14h46->do'urden4
21/10 12h23 java héritage Java: héritage Développement 21/10 13h01->BigFlo932
10/06 16h13 héritage java héritage java Développement 10/06 17h42->tafiscobar1
26/09 09h41 héritage multiple java incompréhensible héritage multiple en java: incompréhensible Développement 26/09 10h06->choubaka1
16/12 14h48 java probleme java Linux/Unix 16/12 20h24->lami20j190
19/08 13h27 applets java applets java ? Windows 22/04 09h19->sebsauvage47
02/03 16h55 java JAVA ? c'est quoi ? Développement 31/01 12h00->oberion23
12/11 11h24 compiler java comment compiler du java??? Développement 13/02 21h06->decollage23
Discussion fermée Problème résolu heritage java Plus de discussions sur « heritage java »

Ce document intitulé « Java - L'héritage » issu de l'encyclopédie informatique Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.