子類型

在編程語言理論中 ， 子類型 （ 動名詞 ) 是一種類型多態的形式 。 這種形式下 ， 子類型 （ 名詞 ) 可以替換另一種相關的數據類型 （ 超類型 ) 。 也就是說 ， 針對超類型元素進行操作的子程序 、 函數等程序元素 ， 也可以操作相應的子類型 。 如果 S 是 T 的子類型 ， 這種子類型關係通常寫作 S <: T ， 意思是在任何需要使用 T 類型對象的環境中 ， 都可以安全地使用 S 類型的對象 。 子類型的準確語義取決於具體的編程語言中 「 X 環境中 ， 可以安全地使用 Y 」 的意義 。 編程語言的類型系統定義了各自不同的子類型關係 。 由於子類型關係的存在 ， 某個對象可能同時屬於多種類型 ， 因此 ， 子類型  是一種類型多態的形式 ， 也被稱作子類型多態  或者包含多態  。 在面向對象程序設計中 ， 多態一般僅指這裏所說的 「 子類型多態 」 ， 而 「 參數多態 」 則一般被稱作泛型編程 。 子類型與面嚮對象語言中 （ 類或對象 ） 的繼承是兩個概念 。 子類型反映了類型 （ 即面向對象中的接口 ） 之間的關係 ； 而繼承反映了一類對象可以從另一類對象創造出來 ， 是語言特性的實現 。 因此 ， 子類型也稱接口繼承 ； 繼承稱作實現繼承 。