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] Constructeur et héritage


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2003
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 196
    Points : 165
    Points
    165
    Par défaut [POO] Constructeur et héritage
    Bonjour,
    J’aimerai instancier la partie du constructeur d’une class mère à partir du constructeur de sa classe dérivé. Comment faut il procéder ?

    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
     
    class vehicules{
     public $moteur;
     public $roues;
     
     function __construct( $moteur = 0, $roues = 0 ){
      $this->moteur = $moteur;
      $this->roues = $roues;
     }
     function __destruct( ){
      echo "appelle destructeur class vehicules <br>";
     }
    }
    class voiture extends vehicules{
     public $marque;
     public $couleur;
     function __construct( $marque = 'rien', $couleur = 'blanc' ){
      $this->marque = $marque;
      $this->couleur = $couleur;
     
      /*parent::__construct( $moteur = 1, $reservoir = 2, $roues = 3 ){
       $this->moteur = $moteur;
       $this->reservoir = $reservoir;
       $this->roues = $roues;  
      }*/
     }
     
     function __destruct( ){
      echo "appelle destructeur class voiture <br>";
     }
     
    }
    $mavoiture = new voiture( 'Renault', 'Rouge' );
    echo $mavoiture->moteur,' ', $mavoiture->roues, "<br>";
    echo $mavoiture->marque,' ', $mavoiture->couleur, "<br>";

  2. #2
    Membre expérimenté Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Points : 1 537
    Points
    1 537
    Par défaut
    faut utiliser parent::_construct() pour faire référence au contructeur parent
    Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
    Mon blog : http://web.codeur.free.fr

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2003
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 196
    Points : 165
    Points
    165
    Par défaut
    Slt,

    J'ai fais ça (comme dans le code en demo) mais je n'arrive pas à atteindre des attributs. Puis je avoir une syntaxe ?

  4. #4
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Citation Envoyé par LDDL
    Bonjour,
    J’aimerai instancier la partie du constructeur d’une class mère à partir du constructeur de sa classe dérivé. Comment faut il procéder ?

    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
     
    class vehicules{
     public $moteur;
     public $roues;
     
     function __construct( $moteur = 0, $roues = 0 ){
      $this->moteur = $moteur;
      $this->roues = $roues;
     }
     function __destruct( ){
      echo "appelle destructeur class vehicules <br>";
     }
    }
    class voiture extends vehicules{
     public $marque;
     public $couleur;
     function __construct( $marque = 'rien', $couleur = 'blanc' ){
      $this->marque = $marque;
      $this->couleur = $couleur;
     
      parent::__construct( $moteur = 1, $reservoir = 2, $roues = 3 ){
       $this->moteur = $moteur;
       $this->reservoir = $reservoir;
       $this->roues = $roues;  
      }
     }
     
     function __destruct( ){
      echo "appelle destructeur class voiture <br>";
     }
     
    }
    $mavoiture = new voiture( 'Renault', 'Rouge' );
    echo $mavoiture->moteur,' ', $mavoiture->roues, "<br>";
    echo $mavoiture->marque,' ', $mavoiture->couleur, "<br>";
    Ceci dit il est un peu étrange ton bout de code ci dessus.

    Je passe les détails, je te laisserai comprendre, je met juste en couleur/bold ce qui m'étonne.

    bbye

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

Discussions similaires

  1. [POO] constructeurs, paramètres et héritage
    Par Belenos dans le forum Langage
    Réponses: 5
    Dernier message: 24/10/2009, 14h57
  2. [PHP 5.2] [POO] Constructeur avec paramètres et héritage
    Par yamayo dans le forum Langage
    Réponses: 4
    Dernier message: 11/01/2009, 20h40
  3. [POO] constructeur d'une class
    Par spirou dans le forum Langage
    Réponses: 13
    Dernier message: 05/07/2006, 16h11
  4. [POO] Constructeur de classe
    Par cescu dans le forum Langage
    Réponses: 7
    Dernier message: 14/02/2006, 21h50
  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