Abstract classes are classes that are meant to be inherited but avoid implementing specific methods, leaving behind only method signatures that subclasses must implement.
Abstract classes are useful for defining and enforcing class abstractions at a high level, similar to the concept of interfaces ...