Adloun

programmation Java (école d'ingénieur) · Chapitre 10 · Exercice de TD

Un orchestre

Classes abstraites et interfaces · niveau 2

Énoncé

Écrire une classe abstraite Instrument avec une méthode abstraite String son() et une méthode concrète String jouer(int n) qui renvoie le son répété fois, séparé par des tirets. Écrire Guitare (son « dzing ») et Tambour (son « boum »), le tambour encadrant en plus son morceau de crochets : [boum-boum-boum]. Faire jouer trois notes à un orchestre de deux guitares et un tambour.

Corrigé


abstract class Instrument {
    abstract String son();                       // chaque instrument a le sien

    String jouer(int n) {                        // commun : répéter n fois le son
        StringBuilder sb = new StringBuilder();
        for (int k = 0; k < n; k++) {
            if (k > 0) sb.append('-');
            sb.append(son());
        }
        return sb.toString();
    }
}

class Guitare extends Instrument {
    @Override String son() { return "dzing"; }
}

class Tambour extends Instrument {
    @Override String son() { return "boum"; }
    @Override String jouer(int n) { return "[" + super.jouer(n) + "]"; }
}

Avec l'orchestre


Instrument[] orchestre = { new Guitare(), new Tambour(), new Guitare() };

et System.out.println(i.jouer(3)) pour chaque instrument i :


dzing-dzing-dzing
[boum-boum-boum]
dzing-dzing-dzing

Le tambour redéfinit jouer en s'appuyant sur la version héritée (super.jouer(n)), qui appelle elle-même son() : c'est bien « boum » qui est répété.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →