Using classes and interfaces


Abstract Class : has a number of abstract methods and properties and maybe some concrete implementations

Generic Implementation extends the abstract class: not an abstract class. Implements all methods either with empty/no-op or code that makes sense in most cases

Specific Implementation: extends either the abstract class or the generic impl depending on how specific it is.


Functionality that cannot be applied to all classes is defined in interfaces.

Specific implementations then implement the interface where appropriate.





~