Nous avons considéré qu'une tâche devait contenir un label et un état, mais, pour certaines tâches, ces attributs ne suffiront pas. Par exemple, pour un RDV il faudra ajouter une notion de date et d'horaire.
Il va donc falloir reprendre notre diagramme en considérant la classe Task comme une classe générique indiquant seulement le squelette d'une tâche. À partir de cette tâche, on pourra définir une tâche simple (SimpleTask) et un rendez-vous (RDV). Vous pourrez par la suite ajouter autant de tâches différentes que vous le souhaitez. Un point important sera que la classe Task en elle-même ne pourra plus être directement utilisée puisque ne définissant que le squelette d'une tâche. On parlera alors de classe abstraite, une classe ne pouvant pas être instanciée.
La figure 1 montre le diagramme des classes définissant les tâches SimpleTask et RDV. Les éléments notés en italique (la classe Task et la méthode toString() de cette classe) sont abstraits. Certains...
