INTERFACE
Interface
-> Fournit un plan général et ne peut contenir que des signatures de méthodes public et des contantes, pas d'attributs.
-> On ne peut pas créer d'objet à partir d'une interface.
-> Une interface doit obligatoirement être étendue pour pouvoir l'utiliser, grâce à implement.
-> Ne peut pas avoir le même nom qu'une classe.
-> On peut implémenter plusieurs interfaces avec la même class. Il suffit de mettre les noms des interfaces séparés d'une virgule.
Exemple d'une interface Personnel :
interface Personnel{
const ANCIENNETE_MIN = 5;
const ANCIENNETE_MAX = 20;
public function getNom();
public function getAnciennete();
public function getIndice();
public function calculerSalaire();
}
Classe qui implemente l'inteface Personnel :
class Professeur implements Personnel{
private $nom;
private $anciennete;
private $indice;
public function __construct($nom, $anciennete, indice){
$this->setNom($nom);
$this->setAnciennete($anciennete);
$this->setIndice($indice);
}
public function setNom($nom){
$this->nom = $nom; }
public function setAnciennete($anciennete){
$this->anciennete = $anciennete;}
public function setIndice($indice){
$this->indice = $indice;}
public function getNom(){
return $this->nom;}
public function getAnciennete(){
return $this->anciennete;}
public function getIndice(){
return $this->indice;}
public function calculerSalaire(){
return
1000
* (
1
+
$this->
getIndice()
*
$this->
getAnciennete()
/
100);
}
}
Instance de la class Personnel
$prof1 = new Professeur('Paul', 12, 54);
Affichage de la méthode getNom
echo prof1->getNom();
Paul
Affichage de la méthode calculerSalaire
echo prof1->calculerSalaire();
14500