Vous êtes sur la page 1sur 15

Université de Thiès

UFR SET

POO - INTERFACE
C. THIAM

Cours POO C THIAM 1


Université Iba Der THIAM de Thiès
UFR SES

Interface

Cours POO C THIAM 2


Université Iba Der THIAM de Thiès
UFR SES

interface

• Un « modèle » de classe qui spécifie simplement les méthodes


publiques à implémenter, sans le faire
• interface = décrit ce que fait un objet (et non comment il le
fait)
• interface = ensemble des méthodes publiques (et des attributs)
• en POO : définition d’un objet par son interface (partie
publique) et non par la structure de données utilisée (partie
privée)
• intérêt de l’encapsulation : possibilité de changer l’implantation
si l’interface ne change pas

Cours POO C THIAM 3


Université Iba Der THIAM de Thiès
UFR SES

Définition d’une interface


• Une interface se déclare avec le mot-clé interface, suivi du nom de
l'interface, suivi d'une paire d'accolades
• décrit un comportement commun (collection de méthodes)
• définit un nouveau type
• l’interface peut être vue comme une API (protocole de
communication) entre deux objets / parties de programme

Cours POO C THIAM 4


Université Iba Der THIAM de Thiès
UFR SES

Le rôle d'une interface


• Techniquement, une interface est une classe entièrement abstraite
• Son rôle est de décrire un comportement à notre objet
• Les interfaces ne doivent pas être confondues avec l'héritage
• Une voiture et un personnage n'ont aucune raison d'hériter d'une
même classe mais peuvent tous les deux se déplacer, donc une
interface représentant ce point commun pourra être créée.

Cours POO C THIAM 5


Université Iba Der THIAM de Thiès
UFR SES

Le rôle d'une interface


• Toutes les méthodes présentes dans une interface doivent être
publiques.
• Une interface ne peut pas lister de méthodes abstraites ou
finales.
• Une interface ne peut pas avoir le même nom qu'une classe et
vice-versa.
• Une interface vous oblige à écrire toutes ses méthodes, mais
vous pouvez en rajouter autant que vous voulez

Cours POO C THIAM 6


Université Iba Der THIAM de Thiès
UFR SES

Implantation d’une interface


• une classe peut implanter une interface
o mot-clé implements
o doit implanter toutes les méthodes de l’interface

• si la class A implante l’interface B , les instances de A sont de


type A et de type B

Cours POO C THIAM 7


Université Iba Der THIAM de Thiès
UFR SES

exemple

• interface Affichable {
• public function affiche();
• }
• class Person implements Affichable {
• public $nom;
• public function affiche() {
• echo $this->nom;
• } On spécifie ici qu’un objet pourra être
qualifié d’«affichable» dès lors qu’il
• } possèdera une méthode «affiche»

Cours POO C THIAM 8


Université Iba Der THIAM de Thiès
UFR SES

L’interface Figure
public interface Figure{
public function périmètre();
public function surface();
public function init($a, $b);
}

Cours POO C THIAM 9


Université Iba Der THIAM de Thiès
UFR SES

Implémentation (java)
class FigureGeometrique implements Figure{
private longueur;
private int largeur;
public FigureGeometrique() {
System.out.println(« Une figure »);
}
public function perimetre() {
return (this.largeur +this.longueur)*2;
//this rplce le nm d la class
}
public function surface() {
return (this.largeur *this.longueur);
}
}

Cours POO C THIAM 10


Université Iba Der THIAM de Thiès
UFR SES

Implémentation
• donne une implantation de toutes les méthodes
définies dans l’interface
• peut ajouter des définitions spécifiques à cette
classe (p.ex. le constructeur)

Cours POO C THIAM 11


Université Iba Der THIAM de Thiès
UFR SES

Quelques remarques complémentaires


• 1 une classe peut implanter plusieurs interfaces :
public class A implements B, C, D
o une instance de A est de type A , B , C et D
o A doit implémenter toutes les méthodes de B , C et D
• 2 une interface ne peut pas être instanciées
o normal : elle ne donne pas d’implantation
o c’est une classe abstraite
o en pratique :
• Figure f = new Figure()
• Figure f = new FigureGeometrique()

Cours POO C THIAM 12


Université Iba Der THIAM de Thiès
UFR SES

Particularités
• Une même classe peut implémenter plusieurs interfaces
• Peuvent hériter les unes des autres
• Peuvent définir des constantes

Cours POO C THIAM 13


Université Iba Der THIAM de Thiès
UFR SES

Résumé implémentation
• permet de définir que plusieurs objets ont un comportement
commun
• définition d’un nouveau type
• interface = impose un certain nombre de fonction, mais aucune
• contrainte sur l’implantation
• interface ne contient pas de code
• en pratique :
o créer une interface ( interface )
o créer les classes qui vont implanter ( implements ) cette interface

Cours POO C THIAM 14


Université Iba Der THIAM de Thiès
UFR SES

Améliorations possibles
• que faire quand seulement une partie du comportement est
commun ?
• peut-on partager du code ?

15
Cours POO C THIAM

Vous aimerez peut-être aussi