Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Polymorphisme : règles
On déclare un objet de type parent On le définit parmi un de ses types dérivés Une méthode polymorphe doit Être déclarée dans la classe parent Redéfinit dans les classes enfants
2
Méthode abstraite Une méthode abstraite n'a pas de définition :
Elle est déclarée dans une classe parent Elle n'a pas de corps, se déclare comme en c Une classe possédant une ou plusieurs méthodes abstraites devient obligatoirement une classe abstraite Une méthode abstraite est obligatoirement définie dans les classes enfants public abstract double calculerAire();
3
Classe abstraite Une classe abstraite est précédée du mot clé abstract
Ne peut pas être instanciée Doit obligatoirement être dérivée (avoir au moins une classe enfant) public abstract class Forme{...}
4
Classes et méthodes abstraites
Exemple : on souhaite créer une hiérarchie de classes qui décrive des formes géométriques à deux dimensions Ainsi la classe "mère" serait la classe Forme Elle pourrait avoir des classes filles telles que Cercle, Rectangle, etc.
5
Classes et méthodes abstraites
Sachant que toutes les formes possèdent les propriétés périmètre et surface, il est judicieux de placer les méthodes définissant ces propriétés (perimetre() et surface() ) dans la classe qui est à la racine de l'arborescence ( Forme)
6
Classes et méthodes abstraites
7
Classes et méthodes abstraites
La classe Forme ne peut pas implémenter ces deux méthodes, car on ne peut pas calculer le périmètre et la surface sans connaître le détail de la forme
8
Classes et méthodes abstraites
Afin d'être certain que les méthodes surface() et perimetre() seront implémentées dans les classes fille de la classe Forme, on déclare ses deux classes comme étant abstraites.
9
Classes et méthodes abstraites
Codez les classes Forme, Rectangle et Cercle. Peut-on déclarer des objets de type Forme ? Peut-on instancier des Forme ?
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.