Skip Navigation Links
Accueil
Java Standard EditionExpand Java Standard Edition
Java EE 5Expand Java EE 5
Visual Basic .Net 2005Expand Visual Basic .Net 2005
Visual C++ .Net 2005Expand Visual C++ .Net 2005
Visual C# .Net 2005Expand Visual C# .Net 2005
Cours ASP .Net 2.0Expand Cours ASP .Net 2.0
PostgresqlExpand Postgresql
LinuxExpand Linux
Visual Studio 2008Expand Visual Studio 2008
ASP 3.0 ClassiqueExpand ASP 3.0 Classique
Cours Javascript - DOM - DHTMLExpand Cours Javascript - DOM - DHTML
Cours AjaxExpand Cours Ajax
VBAExpand VBA
AssembleurExpand Assembleur
PerlExpand Perl
MembresExpand Membres
L'auteur du site
Nouveautés sur le site
Contacts
Plan du site
Accueil > Java Standard Edition > Les interfaces
____________________________________________________________________________________________________
Connexion

Java - Les interfaces

Sommaire :

I)Création d'une interface
II)Attributs d'une interface
III)Remarques
IV)Explications du projet d'exemple
V)Code source complet du projet TestInterface
   V-1)Interface Affichable(package interfaces)
   V-2)Classe Personne(package personne)
   V-3)Classe Main(package main)
VI)Téléchargement du projet d'exemple

I)Création d'une interface

Toutes les classes implémentant cette interface s'engagent à avoir une méthode "afficher". Une interface est un engagement, un contrat.

A l'intérieur de la déclaration de l'interface, on trouve la liste des signatures des méthodes, avec un modificateur de visibilité, qui sera forcément publique: "public" ou rien(par défaut quand on écrit rien: c'est public, et non friendly).
Le contenu de l'interface est essentiellement la liste des méthodes.

II)Attributs d'une interface

Une interface peut avoir des attributs, mais ils n'ont pas le même sens du tout des méthodes qu'on déclare dans une interface. C'est-à-dire que ce ne sont pas des attributs qu'on devrait implémenter. Ce sont des attributs, forcément static, et qui appartiennent vraiment à l'interface elle-même.
Une interface ne peut avoir que des attributs statiques( mais on n'écrit pas 'static'). On accède à l'attribut comme d'habitude pour les static: nom de l'interface suivi du nom de l'attribut.
Et il est obligatoirement une constante(final, mais on ne le dit pas).
On ne peut pas les déclarer private, bien entendu, car personne, dans l'interface, ne pourrait les demander, car il n'y a pas de code dans les méthodes.

Exemple: public int CONSTANTE= 20;
On y accède, pour qui en a besoin, par exemple par Affichable.CONSTANTE .
Le rôle est donc juste de fournir une possibilité de constantes propres à l'interface, ce qui peut être pratique.

III)Remarques

- Une interface peut être étendue (avec extends et non implements) par une ou plusieurs interfaces, c'est à dire que l'interface hérite des méthodes de l'interface mère, comme un héritage classique.
- Une classe peut implémenter plusieurs interfaces, ce qui permet de faire une sorte d'héritage multiple (sinon on ne pourrait pas du tout en faire).

- Une interface peut être implémentée par une ou plusieurs classes, bien sûr.

IV)Explications du projet d'exemple

Le projet TestInterface est composé d'une interface Affichable.
Cette interface Affichable contient une seule méthode, la méthode afficher()
La méthode afficher() affiche l'objet, c'est-à-dire ses attributs.

Une classe implémentant l'interface Affichable signifiera qu'on pourra afficher ses objets.

L'interface est très pratique pour apporter une capacité, ici la capacité de pouvoir afficher l'objet. Et c'est pour cette raison d'ailleurs qu'il est pratique de les appeler avec des noms se terminant par "able".

- Une interface peut être complètement vide, comme par exemple java.io.Serializable:

Ceci a un intérêt, celui de pouvoir imposer "d'hériter" de Serializable, même si on impose aucune méthode à implémenter.

V)Code source complet du projet TestInterface

V-1) Interface Affichable(package interfaces)

V-2)Classe Personne(package personne)

V-3)Classe Main(package main)

VI)Téléchargement du projet d'exemple

Projet d'exemple, V1.1

RETOUR HAUT