Dzmitry Huba wrote the following here about Inheritence:
If two or more classes share only common data (no common behavior), then that common data should be placed in a class that will be contained by each sharing class.
If two or more classes have common data and behavior (i.e., methods), then those classes should each inherit from a common base class that captures those data and methods.
If two or more classes share only a common interface (i.e., messages, not methods), then they should inherit from a common base class only if they will be used polymorphically.
… Just something I want to ponder at some point soon.