A priori les interfaces sont là pour donner des points d'entrée communs sur des objets qui sont au contraire très différents.
Un objet "personnage" n'aura pas du tout les même caractéristiques qu'un objet "technologie". Pourtant pour les deux, il y a des méthodes analogues comme par exemple la méthode "Avoir une description". ( à mettre dans une info bulle par exemple).
L'intérêt des interfaces c'est justement de négliger l'aspect hiérarchique des classes. En réalite ça fait pas grand chose à part t'obliger à implémenter une méthode que de toute façon tu aurais implémenté. Mais ça "unifie".
Ton exemple est intéressant pour le principe des classes mais pour revenir à mon cas, je ne vois pas comment tu pourrais mettre "personnage" et "technologie" dans la même arborescence de classe à moins de créer une super classe fourre-tout "Entité".
classe = structure hierarchique et héritage.
interface = structure transverse.
Sinon pour Joshua, il n' y a pas de notion d'héritage pour les interfaces, (tu "hérites" uniquement du prototype de la méthode, tu vas pas loin avec ça ) mais par contre une classe peut implémenter plusieurs interfaces.
Par exemple si on avait une interface "ObjetMobile"
on pourrait imaginer avoir:
Un objet "personnage" n'aura pas du tout les même caractéristiques qu'un objet "technologie". Pourtant pour les deux, il y a des méthodes analogues comme par exemple la méthode "Avoir une description". ( à mettre dans une info bulle par exemple).
L'intérêt des interfaces c'est justement de négliger l'aspect hiérarchique des classes. En réalite ça fait pas grand chose à part t'obliger à implémenter une méthode que de toute façon tu aurais implémenté. Mais ça "unifie".
Ton exemple est intéressant pour le principe des classes mais pour revenir à mon cas, je ne vois pas comment tu pourrais mettre "personnage" et "technologie" dans la même arborescence de classe à moins de créer une super classe fourre-tout "Entité".
classe = structure hierarchique et héritage.
interface = structure transverse.
Sinon pour Joshua, il n' y a pas de notion d'héritage pour les interfaces, (tu "hérites" uniquement du prototype de la méthode, tu vas pas loin avec ça ) mais par contre une classe peut implémenter plusieurs interfaces.
Par exemple si on avait une interface "ObjetMobile"
on pourrait imaginer avoir:
Code PHP :
<?php
class Vehicule implements ObjetMobile, Information
Enfin dans ce cas là on aurait sûrement plutôt
Code PHP :
<?php
class ObjetMobile{ }
class Vehicule extends ObjetMobile { }
class Perso extends ObjetMobile { }