Classes abstraites et interfaces Similarités : (1) peut être hérité (2) ne peut pas être instancié (3) peut contenir des déclarations de méthode (4) La classe dérivée doit implémenter la méthode non implémentée Catégorie : (1) Les classes de base abstraites peuvent définir des champs, des propriétés et des implémentations de méthodes. Les interfaces ne peuvent définir que des attributs, indexeurs, événements et déclarations de méthodes, et ne peuvent pas contenir de champs. (2) Une classe abstraite est une classe incomplète qui nécessite un affinement supplémentaire, tandis qu’une interface est une norme comportementale. Les interfaces personnalisées de Microsoft sont toujours accompagnées d’un champ capable de prouver qu’elles sont des expressions du « Je peux le faire... » ” (3) Les interfaces peuvent être implémentées plusieurs fois, et les classes abstraites ne peuvent être héritées que par une seule personne (4) Les classes abstraites sont plus définies entre une série de classes étroitement liées, tandis que la plupart des interfaces sont des classes vaguement apparentées qui implémentent toutes une certaine fonction (5) Les classes abstraites sont des concepts abstraits à partir d’une série d’objets liés, ils reflètent donc la communauté interne des choses ; Une interface est une convention fonctionnelle définie pour satisfaire les appels externes, elle reflète donc les caractéristiques externes des choses (6) L’interface n’a essentiellement aucune caractéristique spécifique d’hérédité, elle ne promet que des méthodes pouvant être appelées (7) Les interfaces peuvent être utilisées pour supporter les rappels, mais l’héritage ne possède pas cette fonctionnalité (8) Les méthodes spécifiques implémentées par les classes abstraites sont virtuelles par défaut, mais les méthodes d’interface dans la classe qui implémentent l’interface ne sont pas virtuelles par défaut, bien sûr, vous pouvez aussi les déclarer virtuelles (9) Si une classe abstraite implémente une interface, la méthode dans l’interface peut être mappée à la classe abstraite comme une méthode abstraite sans avoir à l’implémenter, et la méthode de l’interface peut être implémentée dans une sous-classe de la classe abstraite
|