Concept Flow - Interface vs abstract class decision
Start
Need to share behavior?
No→Use Interface
Yes
Need to share code?
No→Use Interface
Yes
Need multiple inheritance?
Yes→Use Interface
No
Use Abstract Class
Decide by checking if you need shared code and multiple inheritance support; interfaces for contracts, abstract classes for shared code.