↑
QCM CHAPITRE 6

Exercices de révision

Testez vos connaissances sur l'héritage, le polymorphisme (redéfinition et surcharge) et le polymorphisme dans une hiérarchie d'objets
Ce QCM couvre toutes les sections du chapitre 6 : l'héritage (classe mère et classe fille, le mot-clé super), le polymorphisme (redéfinition/overriding et surcharge/overloading), et le polymorphisme dans une hiérarchie d'objets. Répondez aux questions puis vérifiez vos réponses en cliquant sur le bouton "Afficher les réponses".

6.1 – Héritage

1

Qu'est-ce que l'héritage en programmation orientée objet ?

Choix unique
2

Quel mot-clé est utilisé en Java pour qu'une classe hérite d'une autre ?

Choix unique
3

Quels éléments une classe fille hérite-t-elle de la classe mère ?

Choix multiples
4

Combien de classes mères une classe peut-elle avoir en Java ?

Choix unique
5

Quel est le résultat de ce code :

public class Personne {
    protected String nom;
    public void sePresenter() {
        System.out.println("Je suis " + nom);
    }
}

public class Etudiant extends Personne {
    private String numeroEtudiant;
}

Etudiant e = new Etudiant();
e.nom = "Alice";
e.sePresenter();
Choix unique
6

À quoi sert le mot-clé super en Java ?

Choix multiples
7

OĂą doit se trouver l'appel super() dans un constructeur de classe fille ?

Choix unique
8

Quel est le résultat de ce code :

public class Personne {
    protected String nom;
    
    public Personne(String nom) {
        this.nom = nom;
        System.out.println("Personne créée");
    }
}

public class Etudiant extends Personne {
    public Etudiant(String nom) {
        super(nom);
        System.out.println("Etudiant créé");
    }
}

Etudiant e = new Etudiant("Alice");
Choix unique
9

Quelle est la différence entre this et super ?

Choix unique
10

Que se passe-t-il si une classe mère n'a pas de constructeur par défaut et qu'on ne appelle pas super() explicitement dans la classe fille ?

Choix unique

6.2 – Polymorphisme

11

Qu'est-ce que la redéfinition (overriding) en Java ?

Choix unique
12

Quelle annotation est recommandée pour indiquer qu'on redéfinit une méthode ?

Choix unique
13

Quelles sont les règles de redéfinition d'une méthode ?

Choix multiples
14

Qu'est-ce que la surcharge (overloading) en Java ?

Choix unique
15

Quelle est la différence principale entre surcharge et redéfinition ?

Choix unique
16

Quel est le résultat de ce code :

public class Personne {
    public void sePresenter() {
        System.out.println("Personne");
    }
}

public class Etudiant extends Personne {
    @Override
    public void sePresenter() {
        System.out.println("Etudiant");
    }
}

Personne p = new Etudiant();
p.sePresenter();
Choix unique
17

Quel est le résultat de ce code :

public class Calculatrice {
    public int additionner(int a, int b) {
        return a + b;
    }
    
    public double additionner(double a, double b) {
        return a + b;
    }
}

Calculatrice calc = new Calculatrice();
int resultat = calc.additionner(5, 3);
Choix unique
18

Peut-on créer une surcharge en changeant uniquement le type de retour ?

Choix unique
19

Quand la résolution de la méthode est-elle effectuée pour la surcharge et la redéfinition ?

Choix unique

6.3 – Polymorphisme dans une hiérarchie d'objets

20

Qu'est-ce que le polymorphisme dans une hiérarchie d'objets ?

Choix unique
21

Qu'est-ce que la liaison dynamique (dynamic binding) ?

Choix unique
22

Quel est le résultat de ce code :

public class Animal {
    public void faireDuBruit() {
        System.out.println("Bruit");
    }
}

public class Chien extends Animal {
    @Override
    public void faireDuBruit() {
        System.out.println("Wouf");
    }
}

Animal a = new Chien();
a.faireDuBruit();
Choix unique
23

Quels sont les avantages du polymorphisme ?

Choix multiples
24

Quel est le résultat de ce code :

public class Personne {
    String nom = "Personne";
    
    public void afficher() {
        System.out.println("Nom : " + nom);
    }
}

public class Etudiant extends Personne {
    String nom = "Etudiant";
    
    @Override
    public void afficher() {
        System.out.println("Nom : " + nom);
    }
}

Personne p = new Etudiant();
System.out.println(p.nom);
p.afficher();
Choix unique
25

Le polymorphisme fonctionne-t-il pour les attributs ?

Choix unique
26

Quel est le résultat de ce code :

public class Personne {
    public void sePresenter() {
        System.out.println("Personne");
    }
}

public class Etudiant extends Personne {
    @Override
    public void sePresenter() {
        System.out.println("Etudiant");
    }
}

public class Professeur extends Personne {
    @Override
    public void sePresenter() {
        System.out.println("Professeur");
    }
}

Personne[] personnes = {
    new Personne(),
    new Etudiant(),
    new Professeur()
};

for (Personne p : personnes) {
    p.sePresenter();
}
Choix unique