IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

[SRC] héritage javascript, et surdéfinition des méthodes


Sujet :

Contribuez

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Points : 491
    Points
    491
    Par défaut [SRC] héritage javascript, et surdéfinition des méthodes
    définissé d'abord vos classe , avec la méthode $class(prototype, classAhériter), ou class abstraite avec la méthode $abstract(prototype, classAhériter)

    puis, dans vos fonction de prototype, si vous voulais avoir accès a la méthode parent du même nom, (surdéfinit) faite this.$super([arguments]) , ou d'un autre nom this.$super('autrefunc',[arguments]])

    voiçi un exemple d'utilisation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    /*definition des classes abstraite servant de base pour l'héritage*/
    var vehicule =$abstract({
       constructor : function(){//se nomme ainsi pour pouvoir etre apellé par les super qui dériveront
         this.stringAvance='';//ini la varaible string
       },
       toStringAvance: function(){
         this.stringAvance+=this.stringType+' avance ';
       }
    });
     
     
    var vehiculeAMoteur = $abstract({
       constructor : function(){
          this.$super();//appelle la méthode surdéfinit 
       },
       toStringAvance: function(chevaux){
         this.$super();//appelle la méthode surdéfinit 
         this.stringAvance+='avec un moteur de '+chevaux+' chevaux';
       }
    },vehicule);
     
     
    var voiture = $class({
       constructor : function(chevaux){
          this.$super();//appelle la méthode surdéfinit 
          this.chevaux=chevaux;
          this.toStringAvance();
       },
       toStringAvance: function(){
         this.$super([this.chevaux]);//appelle la méthode surdéfinit  avec un arguments
         alert(this.stringAvance)
       },
       stringType : 'La voiture'
    },vehiculeAMoteur);
     
     
    var camion = $class({
       constructor : function(chevaux){
          this.$super();//appelle la méthode surdéfinit 
          this.chevaux=chevaux;
          this.toStringAvance();
       },
       toStringAvance: function(){
         this.$super([this.chevaux]);//appelle la méthode surdéfinit  avec un arguments
         alert([this.stringAvance])
       },
       stringType : 'Le camion'
    },vehiculeAMoteur);
     
    new voiture(120);
    new camion(1000);
    si vous avez des questions, hésitez po! a++
    Fichiers attachés Fichiers attachés

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    Merci beaucoup ^^
    Mais heu...ça fait quoi par là ?
    Y a pas un autre topic où tu aurais pu le placer ?
    Enfin bon merci quand même hein
    Cliquez ici et reprenez le pouvoir !
    A bas IE !, Google, et le pistage du net, testons DuckDuckGo.com
    Lords Of The Realm II Download : Lords of the realm 2
    Infos en anglais :Ici

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Points : 491
    Points
    491
    Par défaut
    de rien
    ca fait quoi ? ça fait de l'héritage d'abord, et sa permet aussi d'avoir un moyen d'accéder facilement aux méthode sur définit.

    exemple : j'ai une classe de base qui se nomme animal , dans cette classe j'ai des fonctions, comme, manger , pousse son crit, etc...
    ensuite j'ai une seconde classe qui se nomme lion, dans cette seconde classe j'ai aussi la fonction pousse son cri.
    Etant donné que lion est un animale, je peux faire hériter lion de animal, et ainsi lui attribuer ses méthodes et propriété.
    donc si j'ai fait hériter animal a lion , lion possède la méthode manger qu'il a hérité de animal, et une méthode pousse son crit qu'il a 'sur définit'.
    Mon script, sert d'abord de fonction d'héritage, et possède un mécanisme qui permet de récupérer le méthode/attribut de la classe parent qu'il a surdéfinit.
    dans mon exemple , lion a une méthode pousse son crit qu'il a surdéfinit, grace a mon script, tu peux avoir accès a la méthode pousse son crit, mais de animal, car lion hérite de animal.

    j'espère que t'as compris quelque chose , ce sont des concept de base de la programmation orienté objet. Etant donné que le js est pauvre de se point de vue j'ai crée ce script qui gère bien sur le polymorphisme...

    bon, c'est un script qui trouve son utilité dans des projet complexes, avec plein de classe . voila si t'as d'autre question hésite pas ! a++

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Points : 491
    Points
    491
    Par défaut
    un super tutoriel, pour ceux qui y connaisse rien en héritage.
    http://t-templier.developpez.com/tut...vascript-poo1/

  5. #5
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Lut kimjoa , toi z'ici ;-)
    source qui trouvera sont utilité dans un projet fortement orienté objet , mais effectivement de base , on ne comprend pas l'utilité de suite.
    Par contre source très propre et bien codé
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Points : 491
    Points
    491
    Par défaut
    merci bien le chomeur!!
    vragonno dsl , j'avais pas compris t'as remarque, j'avais sans doute la tête dans le c... ce soir là

Discussions similaires

  1. Hasha : des méthodes JavaScript de hashage
    Par vermine dans le forum NodeJS
    Réponses: 0
    Dernier message: 18/06/2015, 07h35
  2. Hasha : des méthodes JavaScript de hashage
    Par vermine dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 18/06/2015, 07h35
  3. héritage multipes, surdéfinitions des méthodes
    Par kimjoa dans le forum Langage
    Réponses: 8
    Dernier message: 09/01/2010, 18h46
  4. Appeler des méthodes Java dans javascript
    Par Kyo-AzN dans le forum Langage
    Réponses: 4
    Dernier message: 22/10/2008, 20h19
  5. [Info]descriptif des méthode ?
    Par java_math dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 01/06/2004, 08h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo