Quelle est la différence entre la classe abstraite et l'interface en PHP

Table des matières:

Anonim

Les différence principale entre la classe abstraite et l'interface en PHP est que La classe abstraite peut consister en des méthodes abstraites et des méthodes non abstraites alors que toutes les méthodes d'une interface n'ont pas d'implémentations.

PHP est un langage de script côté serveur. C'est l'un des langages les plus populaires dans le développement Web. PHP permet de gérer des fichiers, de gérer des formulaires, d'envoyer des e-mails, de télécharger des fichiers, de connecter une application avec un SGBD comme MySQL et bien d'autres tâches. Les frameworks tels que Zend et Code Igniter sont basés sur PHP. PHP prend également en charge la programmation orientée objet (POO). L'abstraction est un concept majeur de la POO. Cela permet de masquer les implémentations et d'afficher uniquement la fonctionnalité à l'utilisateur. La classe abstraite et l'interface sont deux méthodes pour réaliser l'abstraction.

Abstraction, Classe abstraite, Interface, POO, PHP

Qu'est-ce que la classe abstraite en PHP

Une méthode abstraite est une méthode qui n'a pas d'implémentation. Une classe abstraite est une classe qui a au moins une méthode abstraite. Il peut avoir des méthodes abstraites ainsi que des méthodes non abstraites. Le mot-clé "abstract" est utilisé pour déclarer une classe abstraite. De plus, la classe qui étend la classe abstraite doit fournir les implémentations des méthodes abstraites de cette classe. Les programmeurs ne peuvent pas créer d'objets à l'aide d'une classe abstraite, mais ils peuvent créer un objet à partir d'une classe qui étend la classe abstraite.

Figure 1: Classe abstraite en PHP

Dans l'image ci-dessus, Shape est une classe abstraite. Il a une méthode abstraite appelée draw et une méthode non abstraite appelée display. La classe triangle étend Shape. Ainsi, la classe triangle fournit l'implémentation de la méthode abstraite draw. A la ligne 19, un objet de Triangle est créé. À la ligne 20, la méthode draw est appelée en utilisant cet objet. Par conséquent, la méthode draw s'exécute et affiche le « Triangle » sur la console.

Qu'est-ce que l'interface en PHP

Toutes les méthodes d'une interface sont des méthodes abstraites. En d'autres termes, il ne contient que des prototypes de fonctions ou des fonctions sans implémentations. Le programmeur ne peut pas créer d'objets à l'aide d'une interface. Une interface est déclarée à l'aide du mot clé « interface ». Même si les méthodes d'une interface sont abstraites, le programmeur ne les déclare pas avec le mot-clé abstract. Au lieu de cela, ces méthodes doivent avoir une portée de visibilité publique. Une classe qui implémente une interface doit fournir les implémentations de toutes ses méthodes abstraites.

Figure 2: programme PHP 1 avec une interface

Dans le programme ci-dessus, Shape est une interface. Il a une méthode appelée draw. Il n'a pas d'implémentation. La classe Triangle étend Shape. La classe Triangle fournit l'implémentation de la méthode draw. A la ligne 16, un objet de l'objet Triangle est créé. À la ligne 17, la méthode draw est appelée en utilisant cet objet. Par conséquent, la méthode draw s'exécute et affiche le « Triangle » sur la console.

De plus, les interfaces aident également à implémenter l'héritage multiple. L'héritage multiple est le processus permettant à une classe d'utiliser les attributs et les méthodes de plusieurs classes.

Figure 3: programme PHP avec interfaces

L'interface A a une méthode methodA. De même, l'interface B a une méthode methodB. Ces méthodes sont des prototypes de fonctions. En d'autres termes, ces méthodes n'ont aucune implémentation. Class Test implémente les interfaces A et B. Par conséquent, cette classe fournit des implémentations pour methodA et methodB. Class Test a également sa propre méthode appelée methodTest. Ligne 26, crée un objet de Test. Ensuite, methodA, method et methodTest sont appelés à l'aide de cet objet.

Différence entre la classe abstraite et l'interface en PHP

Définition

Une classe abstraite en PHP est une classe déclarée avec un mot-clé abstrait et est une collection de méthodes abstraites et non abstraites. En revanche, une interface en PHP est un type de référence et consiste en une collection de méthodes sans implémentations ni prototypes de fonction. C'est donc la principale différence entre la classe abstraite et l'interface en PHP.

Méthodes

Une classe abstraite peut avoir des méthodes abstraites ainsi que des méthodes non abstraites alors que toutes les méthodes d'une interface sont des méthodes sans implémentations.

Mot-clé

Alors qu'une classe abstraite est déclarée avec le mot-clé "abstract", une interface est déclarée avec le mot-clé "interface".

Usage

Une autre différence entre la classe abstraite et l'interface en PHP est qu'une classe abstraite aide à réaliser l'abstraction tandis qu'une interface aide à réaliser l'abstraction ainsi qu'un héritage multiple.

Conclusion

Le langage PHP prend en charge la programmation orientée objet. L'abstraction est un pilier de la POO. Les classes abstraites et les interfaces sont deux méthodes pour réaliser l'abstraction. La principale différence entre la classe abstraite et l'interface en PHP est que la classe abstraite peut être constituée de méthodes abstraites et de méthodes non abstraites, tandis que toutes les méthodes d'une interface n'ont pas d'implémentation.

Les références:

1. « Classes abstraites en PHP ». GeeksforGeeks, 11 décembre 2018, disponible ici. 2. « Héritage multiple en PHP ». GeeksforGeeks, 21 février 2019, disponible ici.

Quelle est la différence entre la classe abstraite et l'interface en PHP