PHP
PHP / MySql



Recherche
 
ManuelPHP.com
Constantes de classe
<<<
Abstraction de classes Interfaces
>>>

5.10 Les classes et les objets (PHP 5)
5 Référence du langage
 Manuel PHP

Introduction
Syntaxe de base
Auto-chargement de classes
Constructeurs et destructeurs
Visibilité
L'opérateur de résolution de portée (::)
Statique
Constantes de classe
->Abstraction de classes
Interfaces
Surcharge
Parcours d'objets
Masques
Méthodes magiques
Mot clé "final"
Clonage d'objets
Comparaison d'objets
Réflexion
Typage objet

5.10.9 Abstraction de classes

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.

Lors de l'héritage depuis une classe abstraite, toutes les méthodes marquées comme abstraites dans la déclaration de la classe parent doivent être définies par l'enfant ; de plus, ces méthodes doivent être définies avec la même (ou plus faible) visibilité . Par exemple, si la méthode abstraite est définie comme protégée, l'implémentation de la fonction doit être définie en tant que protégée ou publique.

Exemple de classe abstraite

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

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

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

     
public function prefixValue($prefix) {
       return
"{$prefix}ConcreteClass1";
    }
}

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

     
public function prefixValue($prefix) {
       return
"{$prefix}ConcreteClass2";
    }
}

$class1 = new ConcreteClass1;
$class1->printOut();
echo
$class1->prefixValue('FOO_') ."\n";

$class2 = new ConcreteClass2;
$class2->printOut();
echo
$class2->prefixValue('FOO_') ."\n";
?>

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

<< Abstraction de classes >>
Constantes de classe Les classes et les objets (PHP 5) Interfaces





Google

Services webmasters

L'actualité PHP

Les manuels
 

ManuelPHP.com © 2003-2008 Tigersun - Déclaration CNIL n°872143 - Crédits
Star academy - Comparer les prix - Programme TV - Entraide Informatique
2009-01-09