Outils pour utilisateurs

Outils du site


bloc2:prog:poo:heritage

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
bloc2:prog:poo:heritage [2022/12/12 09:56] leprovost.mbloc2:prog:poo:heritage [2023/11/28 14:19] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. admin
Ligne 1: Ligne 1:
-====== JAVA : Héritage ======+====== Héritage ======
 ===== Définition ===== ===== Définition =====
 L’héritage permet la définition de classes comme des **extensions d’autres classes**. Lorsqu’une classe L’héritage permet la définition de classes comme des **extensions d’autres classes**. Lorsqu’une classe
 hérite d’une autre classe, cela signifie qu’elle incorpore le fonctionnement interne de la classe dont elle hérite d’une autre classe, cela signifie qu’elle incorpore le fonctionnement interne de la classe dont elle
 hérite. hérite.
-----+\\ \\ \\  
 +| <WRAP>
 On dit que : On dit que :
-  * la classe « enfant » __dérive__ de la classe « parent » ; +  * la classe « **enfant** » __dérive__ de la classe « parent » ; 
-  *  la classe « parent » est  la __classe de base__ ou __superclasse__ de la classe « enfant » ;+  *  la classe « **parent** » est  la __classe de base__ ou __superclasse__ de la classe « enfant » ;
  
-La classe dérivée __hérite__ des caractéristiques (attributs et méthodes) de sa classe de base, et par ce fait+La classe dérivée **__hérite__** des caractéristiques (attributs et méthodes) de sa classe de base, et par ce fait
 permet d’économiser beaucoup d’efforts de développement. En effet l’héritage apporte la possibilité de : permet d’économiser beaucoup d’efforts de développement. En effet l’héritage apporte la possibilité de :
   * factoriser le code en le spécialisant (dans la classe mère) ;   * factoriser le code en le spécialisant (dans la classe mère) ;
   * réutiliser le code en le personnalisant (dans les classes enfants) ;   * réutiliser le code en le personnalisant (dans les classes enfants) ;
- +</WRAP> |  \\ {{ bloc2:prog:poo:heritage-diagrammeclasses.png?200 |Parent-Enfant}}  |
-----+
  
 ==== Exemples dans la documentation Java ==== ==== Exemples dans la documentation Java ====
  
-    * https://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html +    * https://docs.oracle.com/javase/8/docs/api/javax/swing/JTable.html 
-    * https://docs.oracle.com/javase/7/docs/api/javax/swing/JList.html +    * https://docs.oracle.com/javase/8/docs/api/javax/swing/JList.html 
-    * https://docs.oracle.com/javase/7/docs/api/javax/swing/JPasswordField.html+    * https://docs.oracle.com/javase/8/docs/api/javax/swing/JPasswordField.html 
 +{{bloc2:prog:poo:heritage-hierarchie.png?400|}}
  
 ---- ----
Ligne 33: Ligne 34:
  
 ===== Polymorphisme ===== ===== Polymorphisme =====
-  * Une variable d’un super-type peut contenir des objets de ses sous-types. 
   * Les sous-types peuvent être utilisés partout où un super-type est attendu    * Les sous-types peuvent être utilisés partout où un super-type est attendu 
 +  * Une variable d’un super-type peut contenir des objets de ses sous-types
  
 ---- ----
Ligne 40: Ligne 41:
 ===== Redéfinition (override) ===== ===== Redéfinition (override) =====
  
 +| <WRAP>
 Lorsqu’une méthode existe dans une super-classe et que la sous-classe nécessite Lorsqu’une méthode existe dans une super-classe et que la sous-classe nécessite
 que cette méthode se comporte différemment, il est possible de redéfinir la que cette méthode se comporte différemment, il est possible de redéfinir la
Ligne 45: Ligne 47:
  
 Dans ce cas, c’est au moment de l’exécution, selon le type réel d’un objet que Dans ce cas, c’est au moment de l’exécution, selon le type réel d’un objet que
-l’environnement décidera d’exécuter la méthode du sous-type ou celle du supertype (liaison retardée).+l’environnement décidera d’exécuter la méthode du sous-type ou celle du supertype (liaison retardée).  
 +</WRAP> | {{bloc2:prog:poo:heritage-override.png?200 |override}} |
  
 ---- ----
Ligne 65: Ligne 68:
 l’objet :  l’objet : 
   * L’opérateur **instanceOf** permet de comparer un objet avec son type supposé   * L’opérateur **instanceOf** permet de comparer un objet avec son type supposé
-  * La méthode **getClass()** de la classe Object qui renvoie le type effectif d’un +  * La méthode **getClass()** de la classe Object qui renvoie le type effectif d’un objet sous la forme d’un objet de type Class
-objet sous la forme d’un objet de type Class+
  
  
  
bloc2/prog/poo/heritage.1670835387.txt.gz · Dernière modification : 2022/12/12 09:56 de leprovost.m