Quelle est la différence entre une simple classe de base et classe abstraite?

Je faisais une sorte de R&D et je suis confondre avec la notion de classe abstraite.

Ce que je sais à propos d'une classe abstraite, c'est qu'il peut contenir des méthodes concrètes, et il peut contenir des méthodes virtuelles. Il peut ou peut ne pas contenir une méthode abstraite, et il peut contenir des champs et à la restriction de la création directe d'instances.

Mais nous pouvons réaliser tout cela dans une simple classe de base (ajout de méthodes virtuelles fera beaucoup parce que d'une classe de base avec des méthodes virtuelles qui ne contient pas une mise en œuvre il y et de remplacement est identique à la méthode abstraite). Alors pourquoi avons-nous besoin d'une classe abstraite si l'interface en charge l'héritage multiple et des événements?

OriginalL'auteur peter | 2013-09-19