bloc2:prog:poo:heritage
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| bloc2:prog:poo:heritage [2022/12/12 10:04] – leprovost.m | bloc2:prog:poo:heritage [2023/11/28 14:19] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. admin | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== | + | ====== 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. | ||
| - | ---- | + | \\ \\ \\ |
| + | | < | ||
| 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 |
| 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) ; | ||
| - | + | </ | |
| - | ---- | + | |
| ==== Exemples dans la documentation Java ==== | ==== Exemples dans la documentation Java ==== | ||
| - | * https:// | + | * https:// |
| - | * https:// | + | * https:// |
| - | * https:// | + | * https:// |
| + | {{bloc2: | ||
| ---- | ---- | ||
| 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) ===== | ||
| + | | < | ||
| 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, | que cette méthode se comporte différemment, | ||
| Ligne 45: | Ligne 47: | ||
| Dans ce cas, c’est au moment de l’exécution, | Dans ce cas, c’est au moment de l’exécution, | ||
| - | 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). |
| + | </ | ||
| ---- | ---- | ||
| Ligne 58: | Ligne 61: | ||
| ---- | ---- | ||
| - | ==== Interrogation de type ==== | + | ===== Interrogation de type ===== |
| Opérer un transtypage, | Opérer un transtypage, | ||
| l’exécution le type effectif de l’objet concerné. | l’exécution le type effectif de l’objet concerné. | ||
| 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.1670835872.txt.gz · Dernière modification : 2022/12/12 10:04 de leprovost.m
