在编程语言理论中，子类型（动名词，）是一种类型多态的形式。这种形式下，子类型（名词，）可以替换另一种相关的数据类型（超类型，）。也就是说，针对超类型元素进行操作的子程序、函数等程序元素，也可以操作相应的子类型。如果 S 是 T 的子类型，这种子类型关系通常写作 S <: T，意思是在任何需要使用 T 类型对象的"环境中，都可以安全地使用" S 类型的对象。子类型的准确语义取决于具体的编程语言中「X 环境中，可以安全地使用 Y」的意义。编程语言的类型系统定义了各自不同的子类型关系。由于子类型关系的存在，某