理解協變、不變和逆變
理解協變、不變和逆變的複雜性對於掌握程式設計中的類型關係至關重要。
什麼是它們?
本質上,這些術語描述了類型和子類型之間的關係如何轉換。讓我們考慮一個場景,其中有兩種類型 A 和 B,以及一個變換函數 f。假設 ≤ 表示子類型關係(A ≤ B 表示 A 是 B 的子類型)。
Java 示例
讓我們探索一些Java 示例澄清這些概念:
在程式設計中的應用
子類型起著至關重要的作用in:
賦值: x = y 僅當typeof(y) ≤ typeof(x)時有效。
方法呼叫: result = method(a) 要求typeof(a) ≤ typeof(parameter) 且returntype ≤ typeof(result).
Overriding: 重寫方法的方法參數必須是重寫方法的方法參數被重寫方法的超類型,並且傳回類型a
以上是協變、不變與逆變:子類型關係如何轉變?的詳細內容。更多資訊請關注PHP中文網其他相關文章!