Notes de cours Java
Les classes abstraites
- Une classe abstraite est une classe marquée avec le modifieur abstract.
- Une classe qui a une méthode abstraite (déclarée ou héritée) doit être déclarée abstraite.
- Une classe abstraite peut avoir des constructeurs et des méthodes concrètes.
- Une classe abstraite peut ne pas avoir de méthodes abstraites.
- Une classe ne peut pas être marquée à la fois par les modifieurs final et abstract.
- Une classe abstraite ne peut pas être instanciée.
- Une classe concrète qui hérite directement ou indirectement d’une classe abstraite doit
redéfinir toutes les méthodes abstraites qu’elle a héritées (celles qui n’ont pas été redéfinies
dans ses classes mères).
Les interfaces
- Une interface est déclarée par le mot clé interface.
- Les interfaces sont des contrats désignant ce qu’une classe les implémentant doit proposer
comme méthodes (lesnsignatures imposées par les contraintes de redéfinition) sans dicter
Advertisement
comment elle va les implémenter (le corps de la redéfinition).
- Une interface ne peut pas être instanciée.
- Une interface n’a pas de constructeurs.
- Les interfaces ne peuvent déclarer que des variables statiques, finales et publiques (donc des
constantes).
- Les méthodes des interfaces sont implicitement publiques (public) et abstraites (abstract). Il
n’est pas obligatoire de mentionner ces modifieurs mais il est interdit d’en mettre d’autres.
- Les méthodes d’interface ne peuvent être ni statiques, ni finales.
- Les interfaces ne peuvent qu’hériter d’autres interfaces.
- Une interface peut hériter (extends) d’une ou plusieurs interfaces (composition d’interfaces).
- Une classe peut implémenter (implements) une ou plusieurs interfaces mais n’hérite que
d’une seule.
- Lorsqu’une classe hérite d’une autre et implémente des interfaces, la déclaration de
Advertisement
l’héritage (extends) doit précéder celle de l’implémentation de l’interface (implements)
- Lorsqu’une classe implémente une interface ou plusieurs interfaces, elle hérite toutes leurs
méthodes abstraites. Dans ce cas :
o Si la classe est abstraite, elle n’a pas d’obligation de redéfinition.
o Si la classe est concrète, elle doit redéfinir correctement toutes les méthodes
abstraites héritées.
- Une interface, comme les classes abstraites constitue un type et peut donc être utilisée pour
déclarer des références ou autres (p.ex. tableau, collection, etc…)
Advertisement
- Une interface, comme les classes abstraites peut constituer un super-type et être utilisée de
manière polymorphe.
o Imposable im1 = new Employe()
o Imposable im2 = new Multinationale().
o List<Imposable> maListe = new ArrayList<Imposable>()
Mohamed Ramzi HADDAD
8
2AINFO, 1ATEL, 2ATA
Advertisement
Notes de cours Java
- Exemples d’interfaces en java : Comparable, Serializable, Clonable, Runnable, List,
Map, Set, etc…
Mohamed Ramzi HADDAD
9
2AINFO, 1ATEL, 2ATA