M'a posé une question, je voulais avoir ma réponse en revue ici.
Q: Dans quel scénario il est plus approprié d'étendre une classe abstraite plutôt que la mise en œuvre de l'interface(s)?
R: Si nous utilisons la méthode de modèle de modèle de conception.
Suis-je la corriger ?
Je suis désolé si je n'étais pas en mesure de l'état de la question clairement.
Je sais que la différence fondamentale entre l'abstrait classe et d'interface.
1) utiliser la classe abstraite lorsque l'exigence est telle que nous avons besoin pour mettre en œuvre les mêmes fonctionnalités dans chaque sous-classe pour une opération spécifique (implémentation de la méthode) et des fonctionnalités différentes pour certaines autres opérations (uniquement les signatures de méthode)
2) utilisation de l'interface si vous avez besoin de mettre la signature soit même (et la mise en œuvre différentes), de sorte que vous pouvez se conformer à l'implémentation de l'interface
3) nous pouvons étendre max d'une classe abstraite, mais peut implémenter plusieurs interfaces
réitérant la question: il y a un autre scénario en plus de ces cités ci-dessus où précisément nous avons besoin d'utiliser une classe abstraite (l'un est de voir est la méthode de modèle de modèle de conception est conceptuellement sur cette base seulement)
Modifier le Août 2013
Un point valide, j'ai eu comme réponse est
lien
Interface vs classe Abstraite
Le choix entre ces deux dépend vraiment de ce que vous voulez faire, mais heureusement pour nous, Erich Gamma peut nous aider un peu.
Comme toujours, il s'agit d'un compromis, une interface vous donne la liberté à l'égard de la classe de base, une classe abstraite vous donne la liberté d'ajouter de nouvelles méthodes tard. – Erich Gamma
Vous ne pouvez pas modifier une Interface sans avoir à changer de beaucoup d'autres choses dans votre code, de sorte que la seule façon d'éviter cela serait de créer une toute nouvelle Interface, qui pourrait ne pas toujours être une bonne chose.
Abstract classes
devrait principalement être utilisé pour les objets qui sont closely related
Interfaces
sont de mieux à offrir common functionality for unrelated classe
s.