Héritage

L'héritage simple en Java : super-classe et sous-classe, la relation « est un », les membres hérités et protected, l'appel super(…) et l'ordre des constructeurs, la classe racine Object.

  • 25 cartes
  • 4 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Mises en situation

Quelques cartes du deck

  • Héritage : de quoi s'agit-il ?

    Voir la réponse

    Mécanisme par lequel une classe reprend les attributs et les méthodes d'une autre, qu'elle peut compléter ou modifier.

    Il évite de recopier du code commun : Chien extends Animal donne à Chien tout ce que fait Animal, et Chien n'écrit que ce qui lui est propre.

  • Qu'affiche l'exécution de new Chiot(); ?

    ```java
    class Animal {
    Animal() { System.out.println("Animal"); }
    }

    class Chien extends Animal {
    Chien() { System.out.println("Chien"); }
    }

    class Chiot extends Chien {
    Chiot() { System.out.println("Chiot"); }
    }
    `

    • Animal, Chien, Chiot
    • Chiot, Chien, Animal
    • Chiot seulement
    • Animal, Chiot
    Voir la réponse

    Animal, Chien, Chiot

    Chaque constructeur commence par appeler celui de sa parente, implicitement par super(). L'exécution remonte jusqu'à la racine, puis les corps s'exécutent de la plus générale à la plus spécialisée.

  • En Java, une classe déclare sa classe parente avec le mot-clé … et ne peut en avoir qu'… seule.

    Voir la réponse

    En Java, une classe déclare sa classe parente avec le mot-clé extends et ne peut en avoir qu'une seule.

    C'est l'héritage simple. Pour reprendre plusieurs contrats, une classe peut en revanche implémenter plusieurs interfaces.

  • Super-classe : de quoi s'agit-il ?

    Voir la réponse

    Classe dont une autre dérive, et dont celle-ci reprend les membres accessibles.

    On dit aussi classe parente ou classe mère. Dans class Chien extends Animal, Animal est la super-classe : elle ignore tout de Chien.

  • Pour réutiliser son stockage, un développeur veut faire hériter la classe Pile de la classe Tableau. Que lui répondre ?

    • Java interdit d'hériter d'une classe qui sert de stockage interne
    • Une pile n'est pas un tableau : elle doit en contenir un, pas en hériter
    • L'héritage n'est possible qu'à partir d'une classe abstraite
    • Une sous-classe ne peut pas ajouter de méthodes à celles de son parent
    Voir la réponse

    Une pile n'est pas un tableau : elle doit en contenir un, pas en hériter

    Hériter, c'est dire « est un » : la Pile hériterait de l'accès par indice, qui casse son principe dernier entré, premier sorti. Réutiliser du code se fait par composition : un attribut de type Tableau.