Can you give me an almost overly simplistic understanding of abstract class vs inheritance use and help me so I can truly understand the concept and how to implement? I have
An interface is a contract. This is the place where you want to describe the functionalities you'll provide, without any implementation details
An abstract class is a class whose purpose is to share implementation details between its sub-classes. Since it's here only for code sharing/factorisation purposes, it cannot be instantiated
your actual class will inherit from your abstract class, and implement its class-specific functionalities while using the code shared in the abstract class if needed.