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édentes Révision précédente
Prochaine révision
Révision précédente
informatique:programmation:php:poo [2011/10/19 20:10]
benoit
informatique:programmation:php:poo [2018/09/06 19:10] (Version actuelle)
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: 2018/09/06 19:00 (modification externe)