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:39] – [Bénéfices] 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 | + | public interface |
| - | | + | |
| - | | + | |
| } | } | ||
| </ | </ | ||
| Ligne 18: | Ligne 18: | ||
| <code java> | <code java> | ||
| - | // En implémentant l’interface | + | // En implémentant l’interface |
| - | // implémenter et définir le contenu des méthodes inscrites dans l’interface | + | // implémenter et définir le contenu des méthodes inscrites dans l’interface |
| - | public class Rectangle implements | + | public class Rectangle implements |
| - | | + | |
| - | ... | + | |
| - | } | + | |
| - | | + | |
| - | ... | + | |
| - | } | + | |
| } | } | ||
| </ | </ | ||
| 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).\\ | ||
| Ligne 46: | Ligne 49: | ||
| * Comme le mécanisme d’interface est absolument indépendant de l’héritage, | * Comme le mécanisme d’interface est absolument indépendant de l’héritage, | ||
| ===== Illustrations : API Java ===== | ===== Illustrations : API Java ===== | ||
| + | Les Classes abstraites et interfaces sont largement employées dans la conception des bibliothèques graphiques (les composants graphiques SWING, par exemple) et des | ||
| + | bibliothèques de classes techniques (les collections, | ||
| {{: | {{: | ||
| {{: | {{: | ||
| - | Les Classes abstraites et interfaces sont largement employées dans la conception des bibliothèques graphiques (les composants graphiques SWING, par exemple) et des | ||
| - | bibliothèques de classes techniques (les collections, | ||
bloc2/prog/poo/interfaces.1710430742.txt.gz · Dernière modification : 2024/03/14 16:39 de admin
