Guidelines for Multiple Inheritance
When a class has more than one distinct parent, you must select one parent to be the single base class. The other parents must be interfaces. Use the following general guidelines to decide which parent entity should be a class and which parents should be interfaces.

A good design should take into account all application use of the classes and interfaces. Potential future re-use of entities is also a consideration. In general, interfaces make re-use easier.

Interfaces. Interfaces should be short and to the point. Use these general guides when modeling an entity as an interface:

  • It is a generic facility, like a lookup table.
  • There are a small number of methods.
  • Field variables are not used or can be emulated.
  • Classes implementing the interface are diverse with little or no common code.

Base Classes. Base classes can be more complex than interfaces. Use these general guides when modeling an entity as a base class:

  • It is the primary entity and others are secondary.
  • The implementation is complex with a larger number of methods.
  • Common methods, field variables, or static methods and variables are needed.
  • It represents a real-world or persistent entity.

—L.F.