Aller au contenu

Les Interfaces Java


Homeomorphe

Messages recommandés

Les Interfaces (suite logique des classes abstraites)

 

 

Une interface est un type, au même titre qu’une classe, mais abstrait et qui donc ne peut être instancié (par appel à 'new' plus 'constructeur'). Une interface décrit un ensemble de signatures de méthodes, sans implémentation, qui doivent être implémentées dans toutes les classes qui implémentent l’interface. L’utilité du concept d’interface réside dans le regroupement de plusieurs classes (les interfaces sont très utilisées même à haut un niveau!) , tel que chacune implémente un ensemble commun de méthodes, sous un même type.

 

Une interface possède les caractéristiques suivantes :

 

● elle contient des signatures de méthodes;

● elle ne peut pas contenir de variables;

● une interface peut hériter d’une autre interface (avec le mot-clé extends);

● une classe (abstraite ou non) peut implémenter plusieurs interfaces.

 

La liste des interfaces implémentées doit alors figurer après le mot-clé 'implements' placé dans la déclaration de classe, en séparant chaque interface par une virgule.

Dans notre exemple précédent (du premier cours), Forme peut être une interface décrivant les méthodes qui doivent être implémentées par les classes Rectangle et Cercle, ainsi que par la classe Carre (non explicitée précédemment, même si celle-ci peut profiter de son héritage de Rectangle).

 

L’interface Forme s’écrit alors de la manière suivante :

 

public interface Forme 
{ 
public int surface();
  
public void affiche(); 
}

 

Pour obliger les classes Rectangle, Cercle et Carre à implémenter les méthodes surface() et affiche(), il faut modifier l’héritage de ce qui était la classe Forme en une implémentation de l’interface définie ci-dessus :

public class Rectangle implements Forme { ... }


et

 

public class Cercle implements Forme { ... }


Note assez importante : En déclarant un tableau constitué d’objets implémentant l’interface Forme, on peut appeler la méthode affiche() qui existe et est implémentée par chaque objet. Si une classe implémente une interface mais que le programmeur n’a pas écrit l’implémentation de toutes les méthodes de l’interface, une erreur de compilation se produira sauf si la classe est une classe abstraite ! Les classes abstraites et les interfaces sont des notions très abstraite, la compréhension des ces notions est très compliquée mais son utilité est redoutable. Elles permettent de décomposer les travaux et une optimisation du code certaine.

 

En vous souhaitant une bonne compréhension,

 

Homéo'

  • J'adore 2
Lien vers le commentaire
  • 4 weeks later...
  • Développeur

Salut,

 

Avec un poil de retard, je pense que tu devrais peut-être utiliser des mots plus amicaux pour les débutants dans le langage.

De mémoire les interfaces ne font pas vraiment partie d'un passage mystique dans l'apprentissage du langage, donc je pensais voir

des mots plus souples pour les potentiels développeurs en devenir du forum.

 

Est-ce que ça te pose problème ou est-ce que tu comptais faire un tutoriel en parallèle moins élaboré en termes techniques ?

Lien vers le commentaire
  • 4 months later...
  • ASIKOO changed the title to Les Interfaces Java

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.