I think I understand the difference between interface and abstract. Abstract sets default behavior and in cases of pure abstract, behavior needs to be set by derived class. Interface is a take what you need without the overhead from a base class. So what is the advantage of interface over composition? The only advantage I can think is use of protected fields in the base class. What am I missing?
I think I understand the difference between interface and abstract. Abstract sets default behavior
Share
An interface defines how you will be used.
You inherit in order to be reused. This means you want to fit into some framework. If you don’t need to fit into a framework, even one of your own making, don’t inherit.
Composition is an implementation detail. Don’t inherit in order to get the implementation of the base class, compose it. Only inherit if it allows you to fit into a framework.