Cet exercice est est un exercice de base pour entrevoir l'intérêt des classes abstraites. Avec un peu d'imagination, on doit se rendre compte que le procédé qui y est utile peut servir dans un cadre plus réel. On définit quatre classes.
- La classe Animal est abstraite et déclare uniquement une méthode abstraite nommée action, sans paramètre et qui ne retourne rien.
- La classe Chien hérite de Animal et définit la méthode action qui écrit à l'écran "J'aboie".
- La classe Chat hérite de Animal et définit la méthode action qui écrit à l'écran "Je miaule".
- La classe EssaiChat contient trois champs statiques :
- un champ statique pour un attribut de type java.util.Random qui est initialisé dès sa définition
- une méthode statique nommée tirage sans paramètre qui retourne un Animal qui a une chance sur deux d'être un Chat et une chance sur deux d'être un Chien.
- une méthode main qui utilise la méthode tirage et invoque la méthode action sur l'animal obtenu par cette méthode.
pour Animal.java qui contient les quatre classes.
abstract class Animal
{
abstract void action();
}
class Chien extends Animal
{
void action()
{
System.out.println("J'aboie");
}
}
class Chat extends Animal
{
void action()
{
System.out.println("Je miaule");
}
}
class EssaiAnimal
{
static java.util.Random alea = new java.util.Random();
static Animal tirage()
{
return (Math.abs(alea.nextInt()) % 2 == 0 ? new Chien() : new Chat());
}
public static void main(String[] arg)
{
tirage().action();
}
}
Aucun commentaire:
Enregistrer un commentaire