Retour sur les interfaces Les méthodes définies dans une interface sont des méthodes qui doivent absolument être implémentées par une ou des sous-classes. On peut voir cela comme un engagement (contrat).
Retour sur les interfaces On peut sans hésiter appeler une méthode décrite dans une interface à partir d’un objet d’une de ses sous classes concrètes. Si toutes les sous classes sont concrètes, nous sommes assurés que la méthode m1() est implémentée. Interface void m1();
Polymorphisme dynamique (late binding) Définition Idée Fonctionnement Exemple
Polymorphisme dynamique (late binding) Définition Polymorphisme : vient du grec et signifie « prendre plusieurs formes ». Dynamique : quelque chose qui se passe lors de l’exécution du programme et non lors de la compilation (statique)
Polymorphisme dynamique (late binding) Idée Une même variable peut être définie d’une classe et être instanciée avec une classe enfant. (Cela ne fonctionne pas pour le parent). Si une méthode est redéfinie dans plusieurs sous-classes et est appelée à partir de l’objet, le compilateur vérifie la classe de l’objet avant l’appel et appelle la bonne méthode. Ex: toString()
Polymorphisme dynamique (late binding) Fonctionnement : On définit un objet d’une classe de base. Habituellement une interface. Nous l’instancions avec une sous-classe plus spécifique. À l’appel d’une méthode, le compilateur appelle la bonne méthode dans la sous-classe. (Voir exemple Animaux fait au cours).