。编程者可利用子类型来以比没有它更抽象的方式来写代码。考虑下面的例子:如果整数和实数都是 codice_1 的子类型，则二者任何类型都可以传递给这个函数。为此，子类型经常被认为是一种形式的多态性。上述例子也可以比较于 C++ 语言的模板。在类型论中，子类型关系经常写为 <:，有着 "A"<:"B" 意味着 "A" 是 "B" 的子类型。在类型论中子类型可用如下事实来特征化，如果 "A"<:"B"，类型 "A" 的任何表达式也可被给予类型 "B"；立法这个特征化的形式类型规则叫做“包容”规则。