Je ne te prends pas pour un imbécile
Les interfaces ne sont pas un concept forcément facile à comprendre.
Tu n'as pas l'obligation de créer une autre classe. Tu peux implémenter cette interface avec ton Activity.
Donc, une interface est une classe un peu spéciale. Elle ne peut pas être instanciée et il ne peut pas y avoir d'implémentation de méthode dedans (je vais mettre de côté les nouveautés de Java 8). Elle ne peut contenir que des prototypes de méthode.
Par exemple :
1 2 3 4 5 6
|
public interface Viewer {
public void loadArticle(String ref);
} |
C'est une interface nommée "Viewer" déclarant une méthode "voidArticle" ne retournant rien ("void") et prenant une String en argument.
Si je décide d'implémenter cette interface avec ma classe, il me faudra utiliser le mot-clef "implements" dans la déclaration de la classe :
public class Example implements Viewer
Ensuite, l'autre particularité de l'interface est que, si une classe dit qu'elle l'implémente, elle doit pouvoir répondre à toute les méthodes déclarées dans l'interface, il faut donc qu'elle implémente les méthodes que cette interface déclare
Ainsi, si je déroule un peu plus l'exemple :
1 2 3 4 5 6 7 8 9 10
|
public class Example implements Viewer {
@Override
public void loadArticle(String ref) {
// implémentation de la méthode
// code permettant de charger un article depuis une référence
}
} |
C'est un semblant de "programmation par contrat". L'interface faisant office de contrat et permettant de dire "tout ceux qui m'implémente implémentent aussi les méthodes que je déclare, et répondront donc à ces appels".
Est-ce plus clair ?
Partager