
Si une classe abstraite sert à factoriser les traitements, une interface sert à en imposer la structure : elle permet d’imposer aux classes l’implémentant la définition de méthodes prédéfinies.
Si une classe abstraite sert à factoriser les traitements, une interface sert à en imposer la structure : elle permet d’imposer aux classes l’implémentant la définition de méthodes prédéfinies.
Comme nous avons vu dans l’article de l’héritage , la notion d’héritage nous permet de factoriser des traitements communs à plusieurs classes dans une classe mère. Alors que l’abstraction ne devrait pas être instanciée directement, les objets devant être uniquement créés à partir des classes filles qui en héritent. C’est la notion d’abstraction.
L’héritage est un des principes fondamentaux de la programmation orientée objet, il permet la factorisation du code commun à plusieurs classes au sein d’une seule et unique classe que l’on appel lera classe mère. Chaque classe voulant disposer des fonctionnalités (attributs et méthodes) de la classe mère devra donc l’étendre (on parle alors d’héritage) et sera appelée classe fille. Elle pourra dès lors utiliser les fonctionnalités non privées de la classe mère, les redéfinir pour en modifier le comportement (on parle de polymorphisme) et ajouter ses fonctionnalités propres.
Dans un souci d’industrialisation, de modularité et de maintenabilité du code, la POO est devenu indispensable. Elle est apparue avec PHP 3 avant d’être profondément changée avec la sortie de PHP 5.
Cet article est une continuation de l’ancien article sur les traits L’introduction des traits pose un nouveau problème concernant la surcharge des méthodes. Jusqu’à présent une méthode redéfinie dans une classe fille écrasait la méthode de la classe mère. Mais comment faire avec les traits. C’est le concept de précédence : les méthodes héritées sont … Lire la suite