is-a

Is-a is a relationship between types (classes), where in one class A is a subclass of another class B. And so B is a superclass of A. In other words, type A is a subtype of type B when A's specification implies B's specification. That is, any object (or class) that satisfies A's specification also satisfies B's specification, because B's specification is weaker.
The is-a relationship is to be contrasted with the has-a relationship between types (classes); confusing the relations has-a and is-a is a common error when designing a model. The is-a relationship may also be contrasted with the instance-of relationship between objects (instances) and types (classes):
<pre><code>
public class Vehicle { ... }
public class Car extends Vehicle { ... }
public class Subaru extends Car { ... }
</code></pre>