Aller au contenu

Nouveau membre ?! Pense à te présenter pour accéder au contenu du forum !

New member ?! Introduce yourself to get access to the forum !

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'

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci à toi encore pour ce tutoriel !

Partager ce message


Lien à poster
Partager sur d’autres sites

×

Information importante

By using this site, you agree to our Conditions d’utilisation.