When to Use Abstract class?
· If you want to provide common, implemented functionality among all implementations of your component, use an abstract class.
· Abstract classes should be used primarily for objects that are closely related.
· 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