I have an abstract class Employee that implements interface IEmployee and is further composed of abstract classes like EmploymentType. I have used Abstract classes, so as to avoid code duplication for common functionality among sub classes. 
So I want to ask following questions:
- Does moving abstract methods from abstract classes to interfaces will improve the design?
- Secondly, Are Interfacesbetter thanAbstractclasses for big projects? The reason why I am asking this is because I have seen a lot of enterprise applications where interfaces are used a lot more than abstract classes. Which gives an impression that using interfaces is the right way to build enterprise applications.


 
    