Aller au contenu

Hériter de deux "class" soeurs


Locace

Sujets conseillés

Bonjour,

Petite question que je me pose : J'aimerais étendre une de mes "classes" (pas bien sur qu'on puisse parler de classe en JS). Pour ça pas de souci, j'utilise ça :


function Personnage()
{
// du code, du code, du code
}

function Magicien()
{
// recode, recode, recode
}
Magicien.prototype = new Personnage();

Là où ça se corse c'est qu'en plus d'étendre la classe Personne en attribuant un métier, j'aimerais aussi lui attribuer une nationalité. Vous voyez le souci ? En fait j'aimerais que la classe Personnes hérite de deux autres classes : une classe de métier et une de nationalité. Le souci étant qu'il n'y a aucun lien entre les classes de nationalité et les classes de métier.

Comment feriez vous ? Est-ce possible ? Suis-je assez clair ?

Bonne journée et merci.

Lien vers le commentaire
Partager sur d’autres sites

Si j'ai bien compris, tu es dans l'erreur : lorsqu'un objet personne dispose de propriétés "metier" et "nationalite", on parle d'attribut (ou de propriété) et non d'héritage.

A mon avis, si tu étends la classe personnage pour chaque métier/nationalité, tu fais une erreur de conception :)

Juste pour la forme : l'héritage multiple est disponible dans certains langages comme C++ (mais rarement utile et surtout pour pour ton utilisation, l'exemple de base est le véhicule amphibie)

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ta réponse. Le véhicule amphibie correspond tout à fait à ce que je veux faire.

Les métiers et les nationalités ne sont pas des propriété. Enfin je ne crois pas. Chaque métier dispose de méthodes et d'attributs propre. Par exemple, le magicien a une variable reserve_magie et a une méthode lancer_boulerdefeu. D'autres métiers ont d'autre méthodes et d'autres variables.

De même pour les nationalités. Un corse dispose de la méthode chant corse. Méthode, qu'un breton n'a pas.

Mon but est d'arriver à avoir des instance de magicien breton, de forgeron normand, de magicien savoyard, ...

Il me semble donc bien être dans le sujet de l'héritage multiple.

Savez-vous comment faire en javascript ?

Merci

Modifié par Locace
Lien vers le commentaire
Partager sur d’autres sites

Merci mille fois pour tout ce code. Je vais me baser là dessus.

Il semblerait que je me sois compliqué la vie.

Merci encore.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...