0

Possible Duplicates:
interface and abstract class.
Abstract classes vs Interfaces

Can anyone tell me when one should use an abstract class and when one should use an interface with sample scenarios?

Community
  • 1
  • 1
Thomas
  • 32,301
  • 119
  • 343
  • 612

3 Answers3

3

You should use an abstract class if you need to supply a base implementation.

Otherwise, use an interface.

SLaks
  • 837,282
  • 173
  • 1,862
  • 1,933
3

If you're defining behavior (like IEnumerable, since a List acts like an IEnumerable), then use an interface, but if you're defining a kind of object (an IS-A) relationship, use an abstract class (like Stream -- since a MemoryStream IS-A Stream).

user541686
  • 197,378
  • 118
  • 507
  • 856
2

When you want to provide an implementation of a method/set of methods but don't want people to directly instantiate your parent class, use an Abstract Class.

If you want to define what members a class must interface, but not provide any implementation, use an Interface.

Justin Niessner
  • 236,029
  • 38
  • 403
  • 530