This question regards application design and does not have a source code component.
Is it common practice, or good practice, to use an abstract class and and multiple interfaces (small i) together in the same application? Consider the example of an abstract class automobile. This general class would enforce the "is a" constraints of all automobile types. Several different interface(s) would be defined and applied to the subclasses of automobile based on the type of automobile being defined.
Does this seem reasonable? Or does defining an abstract class and multiple interfaces seem like over-kill?