Cours ⇒ Cour PHP facebook twitter youtube

La programmation objet ⇒ & les classe abstraites



Une classe est abstraite ne peut pas être instanciée, c’est-à-dire qu’il n’est pas possible de créer une instance.

Ces classes servent uniquement à obliger les classes héritant de la classe abstraite à redéfinir les méthodes déclarées abstraites dans la classe abstraite.

Les classes abstraites s’écrivent en ajoutant le mot cl é abstrat devant le mot clé class.

Dans la calss AnimalAbstraites

<?php
abstract   class AnimalAbstraites

{
//déclaration des attributs
 private $couleur= "noir" ;
 private $poids=10 ;
 protected $age=0;
//declaration des constantes
const Poids_leger=5 ;
const Poids_moyen=10;
const Poids_lourd=15 ;
// Déclaration de la varible statique
private static $compteur=0;
//accesseurs
public function getCouleur()
{
Return $this ->couleur ;//retourne la couleur
}
Public function setCouleur($couleur)
{
$this->couleur=$couleur;
}
public function getPoids()
{
return $this->poids; //reteoune dz poids
 }
public function setPoids($poids)
{
$this->poids=$poids;
}
//le constructeur demande 2 paramettres
public function __construct ($couleur, $poids)
{
echo"Appel du constructeur.<br>";
$this->couleur=$couleur; //initialisation de la couleur
$this->poids=$poids ;//initialisation de poids
self::$compteur=self::$compteur + 1;                           
}
//les  méthodes publique
public function manger_animal(Animal $animal_mange)
{
 //l'animal mangeant augment son poids d'autant que celui de l'animal mangé
$this->poids=$this->poids+$animal_mange->poids;
//l'animalze mangé et sa colleur sont remise a zero
$animal_mange->poids=0;
$animal_mange->couleur="";
 }
public static function se_deplacer()
{
echo"l'animale se déplace.";
 }             

public function Ajouter_un_kilo()
{
 $this->poids=$this->poids +1;
 }
//méthode statique retourne la valeur de compteur
public static function getcompteur()
{
return self::$compteur;
}

//ya pas de code car la méthode est abstraite

abstract public function  respire();
}
?>

Vous constatez que la méthode abstraite resipre() n’a pas de corp (il n’y  pas d’accolades)

Est si on prend notre exemple précédant les fille de la classe Animal Chat et Poisson on rajoute à la classe AnimalAbstraites, donc vous être obliger de redéfinir la méthode respire() dans la classe Chat et Poisson

//ajouter la méthode abstraite dans la classe Poisson
public function respire()
{echo"Le poisson respire !!! ";
}

 

//ajouter la méthode abstraite dans la classe Chat
public function respire()
{echo"Le Chat respire !!! ";
  }

page_4_abstraite.php

<?php
require_once('Animal_abstraites.php');
require_once('poisson_Abstraites.php');
//l'instanciation la classe Poisson
$poisson5= new Poisson('rouge',20);
$poisson5->respire();
?>

Afficher :

Appel du constructeur.
Le poisson respire !!!

 

 


Changer le fond
Oregionale Skin
7astuces
Sélectionnez un Fond (11)
7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces
Fond de contenu
7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces