interviews.dotnetthread.com

↑ Grab this Headline Animator

Friday, October 3, 2008

Abstract classes vs. Interfaces

• Abstract classes may provide members that have already been implemented.
Therefore, you can ensure a certain amount of identical functionality with an
abstract class, but cannot with an interface.
• If you anticipate creating multiple versions of your component, create an
abstract class. Abstract classes provide a simple and easy way to version your
components. By updating the base class, all inheriting classes are automatically
updated with the change. Interfaces, on the other hand, cannot be changed
once created. If a new version of an interface is required, you must create a
whole new interface.
• If the functionality you are creating will be useful across a wide range of
disparate objects, use an interface. Abstract classes should be used primarily for
objects that are closely related, whereas interfaces are best suited for providing
common functionality to unrelated classes.
• If you are designing small, concise bits of functionality, use interfaces. If you are
designing large functional units, use an abstract class.
• If you want to provide common, implemented functionality among all
implementations of your component, use an abstract class. Abstract classes
allow you to partially implement your class, whereas interfaces contain no
implementation for any members.

Submit this story to DotNetKicks

No comments:

Post a Comment

Post your comments/questions/feedback for this Article.

 

Latest Articles