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] Souci sur héritage [PHP 5.3]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Par défaut [POO] Souci sur héritage
    Salutations !

    Je m'en viens vers vous car je ne trouve pas de solution à mon petit souci.
    J'ai du mal comprendre un aspect de la notion d'héritage en objet et je me heurte à un petit mur que j'espère vous m'aiderez à franchir.

    Voici le type de souci que j'ai :
    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
     
    class Animal
    {
        public function Mouvement()
        {
            // script de mouvement
     
            // On rencontre un autre animal pendant le mouvement ? on lui dit bonjour
            echo $this->Bonjour($animal);
        }
        private function Bonjour($animal)
        {
            $texte = 'Bonjour '.get_class($animal);
            return $texte
        }
    }
     
    class Chat extends Animals
    {
        private function Bonjour($animal)
        {
            $type = get_class($animal);
     
            switch($type)
            {
                case 'Chien':
                    $texte = 'Le chat fuit, il a peur du chien';
                    break;
                case default:
                    $texte = 'Bonjour '.$type;
                    break;
            }
            return $texte
        }
    }
     
    class Chien extends Animals
    {
    }
    Quoi qu'il advienne si un chat rencontre un autre animal, c'est toujours la fonction Bonjour de la classe Animal qui est appelée et non pas celle qui la remplace dans Chat.

    Où se situe mon erreur ?

    Merci d'avance pour votre aide.

    Edit :
    Je viens de trouver une solution à mon souci à l'instant.
    Mais est-ce la bonne méthode ?
    Merci.

    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
     
    class Animal
    {
        public function Mouvement()
        {
            // script de mouvement
     
            // On rencontre un autre animal pendant le mouvement ? on lui dit bonjour
            $class = get_class($animal);
            echo $class::Bonjour($animal);
        }
        public function Bonjour($animal)
        {
            $texte = 'Bonjour '.get_class($animal);
            return $texte
        }
    }
     
    class Chat extends Animals
    {
        public function Bonjour($animal)
        {
            $type = get_class($animal);
     
            switch($type)
            {
                case 'Chien':
                    $texte = 'Le chat fuit, il a peur du chien';
                    break;
                case default:
                    $texte = 'Bonjour '.$type;
                    break;
            }
            return $texte
        }
    }
     
    class Chien extends Animals
    {
    }

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    mais t'as testé ton code ???
    parce que il est complétement faux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Pointeur sur fonction membre et héritage
    Par MrDuChnok dans le forum C++
    Réponses: 9
    Dernier message: 20/07/2006, 17h19
  2. Petit souci sur la libération d'une connexion tcp
    Par alexandre75 dans le forum Développement
    Réponses: 1
    Dernier message: 08/11/2005, 19h43
  3. souci sur ajout de données de zone de liste
    Par Tierisa dans le forum IHM
    Réponses: 6
    Dernier message: 27/09/2005, 08h30
  4. [CSS2] Souci d'héritage et de priorité des styles.
    Par ARRG dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 12/07/2005, 09h03
  5. [POO]Interdire l'héritage
    Par Coulon Arnaud dans le forum Langage
    Réponses: 7
    Dernier message: 06/04/2005, 16h20

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