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