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

Langage PHP Discussion :

[POO] Classe mère/fille surcharge


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 401
    Points : 120
    Points
    120
    Par défaut [POO] Classe mère/fille surcharge
    Bonjour,

    j'ai créé une classe fille dans laquelle j'ai une méthode identique à la classe mère.

    Voici un exemple de ce que je veux faire

    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
    class A {
     
    Public function start (){
        $this->test();
    }
     
    private test(){
     
        echo "class A"
    }
     
    }
     
    class B extends A {
     
    Public function start (){
        $this->test();
    }
     
    private test(){
     
        echo "class A"
    }
     
    }
    Maintenant si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $test = new B;
    $b->test;
     
    j'aurais alors en sortie :
     
    class B

    Ma question :

    Comment faire pour surcharger la méthode test et que ce soit celle de la classe fille qui soit utilisée ?

    Merci pour votre aide !
    www.ou-dejeuner.com A chacun son déjeuner ! |Blackprism.org

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par shadeoner Voir le message
    que ce soit celle de la classe fille qui soit utilisée
    dans ton exemple c'est bien la méthode de la classe fille qui est exécutée, tu voulais peut-être parlé de la classe mère ?
    si c'est ça montre nous dans quel cas tu as besoin de faire ça

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 401
    Points : 120
    Points
    120
    Par défaut
    Bonjour,

    merci pour ton aide.

    Oui en effet je me suis trompé, j'édite mon message.

    En fait en gros voilà ce que je veux faire :

    Bonjour,

    j'ai créé une classe fille dans laquelle j'ai une méthode identique à la classe mère.

    je souhaite dans une classe mère mettre une méthode start() qui serait :

    start(){

    $this->myFonction();
    }

    je souhaite mettre exactement la même méthode dans la classe fille, pour qu'elle appele la méthode myFonction de la classe fille.

    Merci d'avance
    www.ou-dejeuner.com A chacun son déjeuner ! |Blackprism.org

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par shadeoner Voir le message
    je souhaite mettre exactement la même méthode dans la classe fille, pour qu'elle appele la méthode myFonction de la classe fille.
    je crois que tu t'es de nouveau embrouillé entre "fille" et "mère"

    dis nous plutôt ce que font les classes

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    A mon avis, l'opérateur de résolution de portée (: devrait résoudre ton problème, non?

  6. #6
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    La surcharge en PHP, c'est pas forcément simple.

    Et est-ce vraiment nécessaire ?
    Si une méthode de la superclasse est surchargée dans quasiment toutes les classes dérivées, pourquoi la mettre dans la superclasse ?
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

Discussions similaires

  1. [PHP 5.2] [POO] Instancier une classe fille appelante depuis la classe mère
    Par loacast dans le forum Langage
    Réponses: 13
    Dernier message: 15/08/2010, 17h12
  2. [POO]2 classes mère et une classe fille
    Par MysticKhal_0 dans le forum C++
    Réponses: 3
    Dernier message: 06/06/2006, 21h30
  3. [POO]Appelé une méthode d'une classe mère
    Par LE NEINDRE dans le forum Langage
    Réponses: 2
    Dernier message: 14/12/2005, 14h44
  4. Réponses: 11
    Dernier message: 08/07/2005, 14h48
  5. Ma classe fille n'hérite pas de sa classe mère
    Par Invité dans le forum Langage
    Réponses: 3
    Dernier message: 15/06/2005, 12h49

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