子类型 在编程语言理论中子类型动名词英語subtyping是一种类型多态的形式这种形式下子类型名词英語subtype可以替换另一种相关的数据类型超类型英語supertype也就是说针对超类型元素进行操作的子程序函数等程序元素也可以操作相应的子类型如果 S 是 T 的子类型这种子类型关系通常写作 S  T意思是在任何需要使用 T 类型对象的环境中都可以安全地使用 S 类型的对象子类型的准确语义取决于具体的编程语言中X 环境中可以安全地使用 Y的意义编程语言的类型系统定义了各自不同的子类型关系 由于子类型关系的存在某个对象可能同时属于多种类型因此子类型英語subtyping是一种类型多态的形式也被称作子类型多态英語subtype polymorphism或者包含多态英語inclusion polymorphism在面向对象程序设计中多态一般仅指这里所说的子类型多态而参数多态则一般被称作泛型编程 子类型与面向对象语言中类或对象的继承是两个概念子类型反映了类型即面向对象中的接口之间的关系而继承反映了一类对象可以从另一类对象创造出来是语言特性的实现因此子类型也称接口继承继承称作实现继承