Outils pour utilisateurs

Outils du site


informatique:programmation:php:poo

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
informatique:programmation:php:poo [2011/10/19 18:10] – benoitinformatique:programmation:php:poo [2011/10/19 18:22] (Version actuelle) – benoit
Ligne 379: Ligne 379:
     public function test()     public function test()
     {     {
-      return "test\n";+      return "test";
     }     }
   }   }
-  +
   class B extends A   class B extends A
   {   {
Ligne 389: Ligne 389:
       // Ici on dit que $retour est égale au resultat de la methode "test" de la classe parente       // Ici on dit que $retour est égale au resultat de la methode "test" de la classe parente
       $retour = parent::test();       $retour = parent::test();
-      return $retour;+      return $retour." avec des chose en plus\n";
     }     }
   }   }
-  +
   $trucA = new A;   $trucA = new A;
   $trucB = new B;   $trucB = new B;
-  +
   echo $trucA->test();   echo $trucA->test();
-  // En executant la méthode héritée, test s'affichera+  echo "\n";
   echo $trucB->test();   echo $trucB->test();
   ?>   ?>
Ligne 404: Ligne 404:
 Resultat attendu : Resultat attendu :
   test   test
-  test+  test avec des chose en plus
  
 ==== Imposer des contraintes ==== ==== Imposer des contraintes ====
Ligne 449: Ligne 449:
  
 Restreindre l'héritage d'une classe (classe finale ne pouvant être héritée) et la empêcher réécriture d'une methode.  Restreindre l'héritage d'une classe (classe finale ne pouvant être héritée) et la empêcher réécriture d'une methode. 
 +
 <sxh php> <sxh php>
   <?php   <?php
Ligne 475: Ligne 476:
   ?>   ?>
 </sxh> </sxh>
 +
 +==== Résolution statique à la volée ====
 +<sxh php>
 +  <?php
 +  class Mere
 +  {
 +    public static function lancerLeTest()
 +    {
 +       self::quiEstCe();
 +    }
 +
 +    public function quiEstCe()
 +    {
 +      echo "Je suis la classe Mere !\n";
 +    }
 +  }
 +
 +  class Enfant extends Mere
 +  {
 +    public function quiEstCe()
 +    {
 +       echo 'Je suis la classe Enfant !';
 +    }
 +  }
 +
 +  Enfant::lancerLeTest();
 +  ?>
 +</sxh>
 +
 +Résultat attendu :
 +  Je suis la classe Mere !
 +
 +==== Pour résumer ====
 +  * Avec l'attribut **protected** il est possible de permettre au classe fille d'utiliser l'attribut contrairement à l'attribut **private**
 +  * **abstract** dans une classe empèche d'utiliser cette classe en dehors d'une classe fille
 +  * **abstract** dans une méthode oblige les classes filles à réécrire la méthode.
 +  * **final** permet de déclarer une méthode ou classe comme non "héritable"
 +  * **parent::methode()** permet de reprendre les éléments d'une methode parente y ajouter modifier des éléments
informatique/programmation/php/poo.1319047815.txt.gz · Dernière modification : (modification externe)