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() {
[Link](« Une figure »);
}
public function perimetre() {
return ([Link] +[Link])*2;
//this rplce le nm d la class
}
public function surface() {
return ([Link] *[Link]);
}
}
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 ([Link]. 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