QCM : Piliers de la programmation orientée objet (11 questions)

Questions et réponses du QCM

1. Quelle relation l’héritage établit-il entre une classe fille et une classe mère ?

La classe fille reprend les propriétés de la classe mère et peut en ajouter de nouvelles.
La classe fille est indépendante de la classe mère et partage seulement son nom.
La classe mère reprend les propriétés de la classe fille et peut en ajouter de nouvelles.
Les deux classes échangent leurs propriétés sans relation de spécialisation.

La classe fille reprend les propriétés de la classe mère et peut en ajouter de nouvelles.

Explication

L’héritage exprime une relation de spécialisation ou de généralisation : la classe fille reprend les propriétés de sa classe mère et peut les compléter. L’idée que la classe mère reprend les propriétés de la classe fille inverse le sens de l’héritage.

2. Si une instance de la classe Chien peut être traitée comme un objet de la classe Animal, quelle conclusion est correcte ?

Les objets de Chien et d’Animal sont interchangeables dans les deux sens.
Tout objet d’Animal peut être considéré comme un Chien, mais un Chien n’est pas nécessairement un Animal.
Un objet de Chien ne peut pas être considéré comme un Animal sans conversion.
Tout objet de Chien peut être considéré comme un Animal, mais un Animal n’est pas nécessairement un Chien.

Tout objet de Chien peut être considéré comme un Animal, mais un Animal n’est pas nécessairement un Chien.

Explication

Une instance d’une classe fille peut être considérée comme une instance de sa classe mère, mais l’inverse n’est pas garanti. L’affirmation inverse la relation : tous les animaux ne sont pas des chiens.

3. Que permet l’héritage multiple à une classe ?

D’hériter des attributs et des méthodes de plusieurs classes.
De remplacer les méthodes de toutes ses classes parentes.
D’appeler plusieurs fois le constructeur de sa classe mère.
De devenir la classe mère d’une seule autre classe.

D’hériter des attributs et des méthodes de plusieurs classes.

Explication

L’héritage multiple permet à une classe de reprendre les attributs et les méthodes de plusieurs classes. Devenir à son tour une classe mère décrit plutôt l’héritage en cascade.

4. Dans une classe fille, quel est l’objectif du chaînage de constructeurs ?

Appeler le constructeur de la classe mère pour initialiser les attributs hérités sans répéter leur initialisation.
Éviter l’exécution du constructeur de la classe mère en recopiant ses méthodes.
Appeler le constructeur d’une autre classe fille pour remplacer les attributs hérités.
Appeler plusieurs fois le constructeur de la classe fille pour initialiser ses propres attributs.

Appeler le constructeur de la classe mère pour initialiser les attributs hérités sans répéter leur initialisation.

Explication

Le chaînage consiste à appeler le constructeur de la classe mère depuis celui de la classe fille afin de réutiliser l’initialisation des attributs hérités. Recopier cette initialisation ne constitue pas un chaînage et maintient la répétition qu’il vise à éviter.

5. Que signifie le fait qu’un attribut hérité soit déclaré protégé dans la classe mère ?

La classe fille peut lire ou modifier cet attribut.
La classe fille peut le lire, mais pas le modifier.
La classe fille ne peut ni le lire ni le modifier.
La classe fille peut le modifier, mais pas le lire.

La classe fille peut lire ou modifier cet attribut.

Explication

Un attribut protégé permet à une classe fille d’accéder à sa valeur et de la modifier. Un attribut privé, contrairement à un attribut protégé, n’est accessible ni modifiable depuis la classe fille.

6. Dans l’exemple Personne–Étudiant, que fait la méthode « afficher() » redéfinie dans la classe Étudiant ?

Elle calcule les notes avant de transmettre l’affichage à Personne.
Elle ajoute l’affichage des notes à celui du nom et du CIN.
Elle affiche les informations de la classe mère sans les compléter.
Elle remplace l’affichage du nom et du CIN par celui des notes.

Elle ajoute l’affichage des notes à celui du nom et du CIN.

Explication

La version redéfinie dans Étudiant conserve l’affichage du nom et du CIN, puis y ajoute celui de note1 et note2. L’idée qu’elle remplace les informations de Personne est erronée, car l’exemple précise que les notes viennent compléter cet affichage.

7. Lorsqu’une classe définit plusieurs méthodes portant le même nom, quelle fonction les distingue ?

Le choix dépend du nombre et du type des arguments transmis.
Le choix dépend de l’ordre dans lequel les méthodes sont écrites.
Le choix dépend du corps de la méthode remplacé dans la classe fille.
Le choix dépend de la classe mère où la méthode a été déclarée.

Le choix dépend du nombre et du type des arguments transmis.

Explication

La surcharge propose plusieurs méthodes de même nom et sélectionne celle qui convient selon le nombre et le type des arguments. À la différence de la redéfinition, elle ne remplace pas une méthode héritée en conservant le même en-tête.

8. Quelle différence distingue une classe abstraite d’une classe concrète quant à leur instanciation ?

La classe abstraite ne peut pas être instanciée, tandis qu’une classe concrète peut l’être.
La classe abstraite doit implémenter ses méthodes dans ses sous-classes, tandis qu’une classe concrète ne peut pas en définir.
La classe abstraite définit un type sans méthodes, tandis qu’une classe concrète déclare des méthodes sans corps.
La classe abstraite peut être instanciée, tandis qu’une classe concrète doit hériter d’une autre classe.

La classe abstraite ne peut pas être instanciée, tandis qu’une classe concrète peut l’être.

Explication

Une classe abstraite sert principalement de classe mère et ne peut pas être instanciée directement, contrairement à une classe concrète. Une classe concrète peut cependant hériter d’une autre classe et définir ses propres méthodes.

9. Une classe implémente deux interfaces, mais ne fournit pas le corps d’une méthode abstraite déclarée par l’une d’elles. Quelle conséquence en découle ?

La classe doit rester abstraite tant que cette méthode n’est pas implémentée.
La méthode manquante est retirée du contrat des deux interfaces.
La méthode reçoit automatiquement le corps défini par l’autre interface.
La classe peut être instanciée si elle implémente les autres méthodes.

La classe doit rester abstraite tant que cette méthode n’est pas implémentée.

Explication

L’implémentation de plusieurs interfaces exige de fournir le corps de toutes leurs méthodes abstraites ; à défaut, la classe reste abstraite. L’implémentation des autres méthodes ne suffit donc pas à rendre la classe instanciable.

10. Plusieurs classes partagent des propriétés et leur mise à jour entraîne des modifications répétées. Comment appliquer l’héritage pour réduire cette duplication ?

Remplacer les propriétés communes par des méthodes polymorphes dans chaque classe
Recopier les propriétés communes dans chaque classe fille pour les adapter séparément
Déclarer les propriétés communes dans une classe mère dont les classes spécialisées héritent
Créer une classe fille distincte pour chaque propriété commune aux différentes classes

Déclarer les propriétés communes dans une classe mère dont les classes spécialisées héritent

Explication

Regrouper les caractéristiques partagées dans une classe mère évite de répéter leur déclaration et leurs modifications dans chaque classe fille. Les recopier dans chaque classe, contrairement au choix proposé, conserve précisément cette duplication.

11. Dans une hiérarchie où Étudiant hérite de Personne et ÉtudiantDeuxièmeCycle hérite d’Étudiant, quelle propriété caractérise l’héritage en cascade ?

Une classe peut combiner les attributs et les méthodes de plusieurs classes mères indépendantes.
Une classe fille remplace le constructeur de sa classe mère tout en conservant son en-tête.
Une sous-classe peut devenir la classe mère d’une autre sous-classe, qui recueille aussi les propriétés héritées plus haut dans la hiérarchie.
Le constructeur d’une classe fille initialise directement les attributs déclarés dans sa classe mère.

Une sous-classe peut devenir la classe mère d’une autre sous-classe, qui recueille aussi les propriétés héritées plus haut dans la hiérarchie.

Explication

L’héritage en cascade se produit lorsqu’une sous-classe devient à son tour la classe mère d’une autre classe, propageant ainsi les propriétés héritées dans la chaîne. La combinaison de plusieurs classes mères décrit plutôt l’héritage multiple.

Révisez avec les flashcards

Mémorisez les réponses avec 10 flashcards sur Piliers de la programmation orientée objet.

Quelles propriétés une classe fille reprend-elle de sa classe mère ?

Les propriétés de sa classe mère.

Si A hérite de B, comment appelle-t-on la classe A ?

La classe fille ou dérivée.

De combien de classes une classe peut-elle hériter avec l’héritage multiple ?

De plusieurs classes.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Piliers de la programmation orientée objet.

Voir la fiche →

Cours similaires

Crée tes propres QCM

Importe ton cours et l'IA génère des QCM avec corrections en 30 secondes.

Générateur de QCM