bloc2:prog:poo:interfaces
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| bloc2:prog:poo:interfaces [2024/03/14 16:44] – [Principes] admin | bloc2:prog:poo:interfaces [2024/03/14 16:51] (Version actuelle) – [Règles de construction et conventions de nommage] admin | ||
|---|---|---|---|
| Ligne 8: | Ligne 8: | ||
| <code java> | <code java> | ||
| - | // une interface qui décrit les comportements d'un objet déplaçable | + | // une interface |
| public interface IMovable { | public interface IMovable { | ||
| - | | + | public void moveTo (Point position); |
| - | public void moveTo (int x_position, int y_position); | + | |
| } | } | ||
| </ | </ | ||
| Ligne 35: | Ligne 35: | ||
| Pourtant, ce n’est ni vraiment l’un, ni vraiment l’autre. | Pourtant, ce n’est ni vraiment l’un, ni vraiment l’autre. | ||
| - | ===== Règles de construction ===== | + | ===== Règles de construction |
| - | * Le mécanisme sous-jacent se distingue de l’héritage | + | * Par convention, on nomme les interfaces |
| + | | ||
| * Implémentation d’**interface et** extension par **héritage peuvent se combiner** ; | * Implémentation d’**interface et** extension par **héritage peuvent se combiner** ; | ||
| * Par définition, | * Par définition, | ||
| * Une **interface est perçue** par l’environnement **comme un type** à part entière. Il est donc possible de déclarer une variable d’un type d’interface ; | * Une **interface est perçue** par l’environnement **comme un type** à part entière. Il est donc possible de déclarer une variable d’un type d’interface ; | ||
| + | * Le mécanisme sous-jacent se distingue de l’héritage en le rendant plus riche : une classe peut **implémenter plusieurs interfaces** alors qu’elle ne peut **hériter qu’une fois** (héritage simple) ; | ||
| + | |||
| ===== Bénéfices ===== | ===== Bénéfices ===== | ||
| * Une interface permet de définir un ensemble de services « contractuels » dont on veut être certain qu’une classe les fournira. La classe est libre de l’implémentation (comment est réalisé le service) mais pas du contrat (la surface d’échange : paramètres et retour).\\ | * Une interface permet de définir un ensemble de services « contractuels » dont on veut être certain qu’une classe les fournira. La classe est libre de l’implémentation (comment est réalisé le service) mais pas du contrat (la surface d’échange : paramètres et retour).\\ | ||
bloc2/prog/poo/interfaces.1710431092.txt.gz · Dernière modification : 2024/03/14 16:44 de admin
