Une classe est une spécification de la façon de construire des objets à partir de la même classe . C’est un type de plan ou de prototype à partir duquel les objets individuels sont créés. Nous pouvons dire qu’une Classe est un modèle qui décrit les types d’état et de comportement que les Objets de son type supportent.
En termes de programmation orientée objet (POO), nous pouvons dire qu’une voiture Toyota est une instance de la Classe d’Objets connue sous le nom de Voiture. Une classe est comme le plan d’une voiture. En utilisant ce plan, vous pouvez construire autant de voitures que vous le souhaitez. Chaque voiture que vous construisez est un objet de la classe Car. Chaque voiture a aussi un numéro, bien sûr. Si tu veux dire à quelqu’un quelle est ta voiture, tu lui donnes le numéro pour l’identifier. Ce numéro est appelé référence de l’Objet .
Une Interface fournit un contrat spécifiant comment créer un Objet, sans se soucier des spécificités de la façon dont ils font les choses. Une Interface est un type de référence et il a inclus seulement les membres abstraits tels que les événements, les méthodes, les propriétés etc. et il n’a pas d’implémentations pour aucun de ses membres.
Lorsqu’une Classe implémente une Interface sont forcés par le compilateur d’écrire les méthodes et les propriétés que l’Interface a définies. C’est-à-dire que si vous implémentez une Interface dans votre Classe, vous devez déclarer tous les événements, méthodes, propriétés de l’Interface dans votre Classe. Une Interface ne peut avoir que des méthodes et des Constantes Abstraites , qui sont toujours implicitement publiques, statiques et finales.
Une Classe a à la fois une définition et une implémentation alors qu’une Interface n’a qu’une définition.
Une Classe peut être instanciée mais une Interface ne peut pas l’être Vous pouvez créer une instance d’un Objet qui implémente l’Interface.
Une Classe est une entité à corps complet avec des membres, des méthodes ainsi que leur définition et leur implémentation. Une Interface est juste un ensemble de définition que vous devez implémenter dans votre Classe héritant de cette Interface.