Classes abstraites, interfaces et héritage multiple
CHAPITRE 14
302
public override void affiche() // override nécessaire ici
{ System.Console.WriteLine ("Je suis un entier de valeur " + valeur) ;
}
private int valeur ;
}
class Reel : Affichable
{ public Reel (float x)
{ valeur = x ;
}
public override void affiche() // override nécessaire ici
{ System.Console.WriteLine ("Je suis un reel de valeur " + valeur) ;
}
private float valeur ;
}
class TableauHeter
{ static void Main()
{ Affichable [] tab ;
tab = new Affichable [3] ;
tab [0] = new Entier (25) ;
tab [1] = new Reel (1.25f) ; ;
tab [2] = new Entier (42) ;
int i ;
for (i=0 ; i<3 ; i++)
tab[i].affiche() ;
}
}
Je suis un entier de valeur 25
Je suis un reel de valeur 1,25
Je suis un entier de valeur 42
PHP
Comme en Java, on dispose à la fois de la notion de classe abstraite (mot abstract) et de celle de méthode retardée (même mot abstract).
abstract class Affichable
{ abstract function affiche() ;
}
class Entier extends Affichable
{ function __construct ($n)
{ $this->valeur = $n ;
}
function affiche()
{ echo "Je suis un entier de valeur ".$this->valeur."
" ;
}
private $valeur ;
}
Précédent

- 325/370

Suivant