Abstraction d'objets

PHP 5 introduit les classes et les méthodes abstraites. Il n'est pas autorisé de créer une instance d'une classe définie comme abstraite. Toutes les classes contenant au moins une méthode abstraite doivent également être abstraites. Pour définir une méthode abstraite, il faut simplement déclarer la signature de la méthode et ne fournir aucune implémentation.

La classe qui implémente la méthode abstraite doit être définie avec la même visibillité ou une plus faible. Si la méthode abstraite est définie en tant que protégée, la fonction l'implémentant doit être définie en tant que protégée ou publique.

Exemple 19-17. Exemple de classe abstraite

<?php
abstract
class AbstractClass
{
   
// Force la classe étendue à définir cette méthode
   
abstract protected function getValue();

   
// méthode commune
   
public function printOut() {
     print
$this->getValue();
   }
}

class
ConcreteClass1 extends AbstractClass
{
   
protected function getValue() {
     return
"ConcreteClass1";
   }
}

class
ConcreteClass2 extends AbstractClass
{
   
protected function getValue() {
     return
"ConcreteClass2";
   }
}

$class1 = new ConcreteClass1;
$class1->printOut();

$class2 = new ConcreteClass2;
$class2->printOut();
?>

Du code ancien n'ayant aucune classe ou fonction nommée abstract devrait fonctionner sans modifications.