0%
Encapsulation, héritage, polymorphisme — Chapitre 10

Chapitre 10 — Encapsulation, héritage, polymorphisme

Partie 1A — Apprendre Dart · Chapitre 10 sur 62 · 7 h

Chapitre 10 — Encapsulation, héritage, polymorphisme

Niveau : intermédiaire Durée estimée : 7 h Pré-requis : chapitre 09 — Constructeurs et modélisation Ce que vous saurez faire à la fin : protéger les données d'une classe avec des membres privés, des getters et des setters validés, construire une hiérarchie de classes avec extends et super, redéfinir des méthodes avec @override, et écrire du code polymorphe qui traite Player, Enemy et Boss de la même façon.


10.0 — Objectifs du chapitre

À la fin de ce chapitre, vous serez capable de :

  • citer les trois piliers de la POO abordés ici ;
  • expliquer ce qu'est l'encapsulation avec vos propres mots ;
  • montrer concrètement le danger d'une propriété publique modifiable n'importe comment ;
  • déclarer un membre privé avec le préfixe _ ;
  • expliquer que la portée du _ est la bibliothèque (le fichier), pas la classe ;
  • écrire un getter qui expose une valeur en lecture seule ;
  • écrire un setter qui valide la valeur avant de l'accepter ;
  • écrire des méthodes privées d'aide interne ;
  • construire une classe Player entièrement encapsulée, avec des vies toujours bornées entre 0 et un maximum ;
  • expliquer ce qu'est l'héritage et à quoi il sert ;
  • utiliser extends pour créer une sous-classe ;
  • dire précisément ce qui est hérité et ce qui ne l'est pas ;
  • appeler le constructeur parent avec super ;
  • appeler une méthode parente avec super.methode() ;
  • redéfinir (override) une méthode héritée ;
  • utiliser correctement l'annotation @override ;
  • expliquer le polymorphisme sur un exemple ;
  • parcourir une List<Character> contenant des Player et des Enemy ;
  • utiliser is et as pour tester et convertir un type ;
  • construire la hiérarchie Character → Player / Enemy / Boss ;
  • reconnaître les situations où l'héritage est un mauvais choix.

Commentaires

Les commentaires sont alimentés par GitHub Discussions

Connectez-vous avec GitHub pour participer à la discussion

Lien copié !