- Heritage (informatique)
-
Héritage (informatique)
Pour les articles homonymes, voir Héritage.L’héritage est un principe de la programmation orientée objet, permettant entre autres la réutilisabilité et l'adaptabilité des objets. Elle se nomme ainsi car le principe est en quelque sorte le même que celui d’un arbre généalogique. Ce principe est basé sur des classes dont les "filles" héritent des caractéristiques de leur(s) "mère(s)".
Les classes possèdent des attributs et/ou des méthodes qui leurs sont propres, et qui pourront être transmis aux classes filles découlant des classes mères.
Chacune des classes filles peut donc posséder les mêmes caractéristiques que ses classes mères et bénéficier de caractéristiques supplémentaires à celles de ces classes mères. Toutes les méthodes de la classe héritée (fille) peuvent être redéfinies. Chaque classe fille peut, si le programmeur n'a pas défini de limitation, devenir à son tour classe mère.
Pour qu'une classe fille puisse hériter des propriétés de la classe mère, il faut que les propriétés de la classe mères possèdent des attributs de visibilités compatibles. Il existe globalement 3 niveaux de visibilité : public, private, protected
- Public est la visibilité la plus large (accessible en dehors de la classe)
- Private est la plus restrictive (accessible uniquement depuis la classe courante)
- Protected est intermédiaire et est visible par la classe courante, toutes les classes filles, mais inaccessible en dehors des classes mère/filles.
Sommaire
Exemples
PHP
/* Déclaration des classes */ class Animal { //Donnée membre public $nom; //Constructeur public function __construct($nouveauNom) {}; //Méthode public function recevoirNom($nouveauNom) {}; } class Chat extends Animal { //Constructeur public function __construct($nouveauNom) {}; //Méthode public function miauler() {}; } class Chien extends Animal { //Constructeur public function __construct($nouveauNom) {}; //Méthode public function aboyer() {}; } /* Utilisation des classes*/ //Instanciation de la classe chien (toutou devient un objet de type chien) $toutou = new Chien('Rex'); //On envoie un message au chien en utilisant une de ses méthodes (ici aboyer) $toutou->aboyer(); // Méthode de la classe Chien $toutou->recevoirNom('Isidor'); // Méthode héritée de la classe mère Animal
Java
/* Déclaration des classes */ public class Animal{ //Donnée membre String nom; //Constructeur public Animal() {}; //Méthode public recevoirNom(String nouveauNom) {}; } public class Chat extends Animal{ //Constructeur public Chat() {}; //Méthode public miauler() {}; } public class Chien extends Animal{ //Constructeur public Chien() {}; //Méthode public aboyer() {}; } /* Utilisation des classes*/ //Instanciation de la classe chien (toutou devient un objet de type chien) Chien toutou=new Chien("Rex"); //On envoie un message au chien en utilisant une de ses méthodes (ici aboyer) toutou.aboyer(); //méthode aboyer de la classe chien toutou.recevoirNom("Isidor");//Appel d'une méthode héritée de la classe mère
Voir aussi
- Portail de la programmation informatique
Catégorie : Programmation orientée objet
Wikimedia Foundation. 2010.