subtyping

Noun

 * 1) A division into subtypes.
 * 2)  A form of type polymorphism in which an instance of a subtype can be used anywhere the supertype could be used, without changing the code.