Voila un petit exemple simple sans code d'interface et classe abstraite :
L'interface :

imagine 2 classes
Humain et
F�lin. Ces 2 �tres sont capables de se laver, mais de fa�on diff�rente, un f�lin en se l�chant, un humain en prenant une douche.

on va donc cr�er une interface
Lavable qui d�finit une seule m�thode
laver() sans param�tre ni retour.

Les 2 classes Humain et F�lin vont donc impl�menter l'interface Lavable, chacune � leur m�thode.
La classe abstraite :
Maintenant on voudrait ajouter tous les autres types d'animaux, ils sont tous capables de se laver, comment �tre s�r de ne pas oublier d'impl�menter Lavable?

Tout d'abord on cr�� une classe
Animal. Tous les animaux h�ritent de cette classe.

Maintenant c'est Animal qui impl�mente Lavable. On a supprim� Lavable de Humain et F�lin.

D'apr�s le principe des interfaces, Animal devrait donc impl�menter Lavable, mais on perdrait le comportement laver() propre � chaque animal. On va donc d�clarer la classe
Animal comme �tant abstraite.

En effet la d�finition d'une interface est que ses m�thodes doivent �tre d�clar�es au maximum dans la 1�re classe non abstraite qui l'impl�mente. Donc Animal �tant abstraite, elle n'est pas oblig�e de d�clarer la m�thode laver(). Par contre toute classe non abstraite h�ritant de Animal devra d�clarer laver().

Mis � part �a, � quoi sert Animal? elle n'a pas beaucoup d'int�r�t... Et bien on peut y d�finir des comportements commun, on pourrait y d�finir une m�thode d�placer(Coordonnees position) dans laquelle on changerait la position de l'animal � un certain point.
C'est un peu long, mais j'esp�re avoir �t� assez clair. A mon avis, pour comprendre la m�thode objet, il faut oublier le code et penser � des choses tr�s simples, tout ce qui nous entoure pourrait �tre repr�sent� de fa�on objet.

Partager