## Subtype Relationship

S is a subtype of T if

- S and T are the same type
- S and T are both class types, and T is a direct or indirect
superclass of S
- S is a class type, T is an interface type, and S or one of its
superclasses implements T
- S and T are both interface types, and T is a direct or indirect
superinterface of S
- S and T are both array types, and the component type of S is a
subtype of the component type of T
- S is not a primitive type and T is the type
`Object`
- S is an array type and T is
`Cloneable` or
`Serializable`

- S is the
`null` type and T is not a primitive type

previous |
start |
next .... [Slide 4] ....