Advantage of abstract class over interface:
Consider versioning:
· You cannot add members to interface without breaking the existing code.
· But you can safely add new members to abstract classes.
Choosing between interface & abstract class:
· Use interface when you want to implement multiple inheritance.
· Use interface for decoupling
· Use abstract class in case of frequent versioning scenario.