I am having a scenario where there are several subclasses which have got similar implementations and some extra methods for which the implementations differ with each subclass. I assume that an abstract class would be a good choice for this scenario. But would it be better if that abstract class implements an interface which contains all method declarations.Or should I just stick with the abstract class instead.
In short, I would like to know the scenarios where I should prefer Abstract classes at the top of the hierarchy rather than an Interface.