Interfaces or Abstract Classes?
medium.com