Classes abstraites

La classe abstraite en Java : non instanciable, méthodes abstraites à redéfinir, méthodes concrètes mises en commun, sous-classe concrète ou encore abstraite, et le patron de méthode.

  • 17 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

  • Classe abstraite : de quoi s'agit-il ?

    Voir la réponse

    Classe qui sert de modèle commun à ses sous-classes : on ne peut pas en créer d'objet directement, et elle peut laisser des méthodes sans corps.

    Elle regroupe ce qui est commun (attributs, méthodes concrètes) sans prétendre représenter un objet complet. new Forme() est refusé si Forme est abstraite.

  • Forme est une classe abstraite. Quel message le compilateur donne-t-il pour cette ligne ?

    ```java
    Forme f = new Forme();
    `

    • Forme is abstract; cannot be instantiated
    • Forme is not abstract and does not override abstract method aire() in Forme
    • cannot find symbol : constructor Forme()
    • abstract methods cannot have a body
    Voir la réponse

    Forme is abstract; cannot be instantiated

    new sur une classe abstraite est interdit : l'objet serait incomplet. L'autre message, qui ressemble beaucoup, vise une sous-classe concrète qui oublie une méthode abstraite.

  • Une classe qui contient une méthode abstraite doit elle-même être déclarée ….

    Voir la réponse

    Une classe qui contient une méthode abstraite doit elle-même être déclarée abstract.

    Sinon on pourrait créer un objet dont une méthode n'a pas de corps. Le compilateur répond : Forme is not abstract and does not override abstract method aire() in Forme.

  • Méthode abstraite : de quoi s'agit-il ?

    Voir la réponse

    Méthode déclarée sans corps, que chaque sous-classe concrète est obligée de redéfinir.

    Elle fixe l'obligation sans imposer la manière : abstract double aire(); dit que toute forme a une aire, et c'est chaque forme qui la calcule.

  • Peut-on déclarer abstraite une classe qui n'a aucune méthode abstraite ?

    • Oui : cela interdit new tout en gardant le code commun
    • Non : abstract exige au moins une méthode abstraite
    • Oui, mais seulement avec un constructeur privé
    • Non : le compilateur la refuse avec class has no abstract method
    Voir la réponse

    Oui : cela interdit new tout en gardant le code commun

    Le mot abstract sur une classe interdit seulement de l'instancier. La règle ne va que dans un sens : une méthode abstraite impose une classe abstraite, pas l'inverse.