abstraction is the principle of hiding complex implementation details and showing only the essential features of an object or system to the user. It focuses on "what" an object does rather than "how" it does it.
cannot be instantiated
meant to be inherited by other class
used to provide a common definition of a base class that can be shared by multiple derived classes
Code