Geo,
>I wouldn't say so. In thinking about this, the words "abstract class" come to mind. An abstract class simply defines the interface an object presents to the outside world.
A minor point, but I think the term "abstract class" probably is more exactly defined as a class that is not expected to be directly instantiated, rather than a class that simply defines the interface. This would mean that an abstract class can include "base" code that will be inherited by subclasses, in addition to the interface definition.