When to prefer an abstract class over interface?
- If one plans on updating a base class throughout the life of a program/project, it is best to allow that the base class be an abstract class
- If one is trying to build a backbone for objects that are closely related in a hierarchy, it is highly beneficial to use an abstract class
When to prefer an interface over abstract class?
- If one is not dealing with a massive hierarchical type of framework, interfaces would be a great choice
- Because multiple inheritance is not supported with abstract classes(diamond problem), interfaces can save the day