Classes abstraites, interfaces et héritage multiple
CHAPITRE 14
300
class Reel extends Affichable
{ public Reel (float x)
{ valeur = x ;
}
public void affiche()
{ System.out.println ("Je suis un réel de valeur " + valeur) ;
}
private float valeur ;
}
public class TableauHeter
{ public static void main (String[] args)
{ 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 réel de valeur 1.25
Je suis un entier de valeur 42
C++
Là encore, pour profiter du polymorphisme, il faut utiliser des objets dynamiques et déclarer virtuelle la méthode affiche. En outre, pour que la classe Affichable soit considérée comme abstraite, il faudra déclarer affiche « virtuelle pure ».
#include
using namespace std ;
class Affichable
{ public :
virtual void affiche() = 0 ;
// méthode virtuelle pure
} ;
// la classe n’est pas instanciable
Précédent

- 323/370

Suivant