Héritage
L’héritage comme nous le connaissons dans le C++ ou le Java n’est pas implémenté dans le langage Javascript.
Il est à noter que dans des versions futures de Javascript cette notion sera présente,
certainement à travers les mot clé déjà réservé extends et implements.
En attendant sont implémentation native, le développeur peut utilisé le modèle suivant pour effectuer un héritage.
Exemple :
//classe mère
function People(name)
{
this.name=name;
this.showName = function(){return ""+this.name+""};
}
// 1 classe fille
function Client(name,compte ) //extends Client
{
this.superClass=People; //
this.superClass(name); // L’heritage
delete this.superclass; //
// propriétés propres à l'objet
this.compte =compte;
this.showCompte = function (){return this.compte};
}
//1 autre classe fille
function Fournisseur(name, entrepot)
{
this.superClass=People; //
this.superClass(name); // L’héritage
delete this.superclass; //
// on redéfini la fonction showName de la classe mère
this.showName=function (){return ""+this.name+""};
//propriétés propres à l'objet
this.entrepot =entrepot;
this.showEntrepot = function (){return this.entrepot};
}
Utilisation
var monCli = new Client("Carrefour","CPT0102021" )
var monFour= new Fournisseur("Bonduelle","Entrepot Paris 1" )
document.write("
monCli.showName(): " + monCli.showName());
document.write("
monFour.showName(): " + monFour.showName());
document.write("
monCli.showCompte(): " + monCli.showCompte());
document.write("
monFour.showEntrepot(): " + monFour.showEntrepot());
Résultat
monCli.showName(): Carrefour
monFour.showName(): Bonduelle
monCli.showCompte(): CPT0102021
monFour.showEntrepot(): Entrepot Paris 1
Il est donc possible grâce à cette méthode qu’un objet déclare lui-même qu’il hérite d’une classe mère.
Il peut ainsi définir ses fonctions et propriétés spécifiques et redéfinir des fonctions de la classe mère.