勵志

勵志人生知識庫

上溯造型

上溯造型(Upcasting)是一種在面向對象編程中使用的技術,它涉及將一個子類對象的引用轉換成父類對象使用。這種轉換之所以被稱為上溯造型,是因為在類繼承體系圖(UML類圖)中,父類通常位於圖的頂部,而子類位於底部。因此,上溯造型的方向是從子類到父類,箭頭朝上。在進行上溯造型時,類接口可能出現的唯一問題是它可能丟失一些方法,但它至少包含了基礎類的方法。這是因為編譯器允許上溯造型,即使沒有任何明確的造型或者其他非凡標註。上溯造型是安全的,因為它從一個更非凡的類型轉換到一個更常規的類型。在某些情況下,也可以執行下溯造型,但這會面臨特定的困境。

在面向對象的程式設計中,創建和使用代碼最可能採取的一種做法是將數據和方法統一封裝到一個類里,並且使用那個類的對象。有時候,需要通過「合成」技術用現成的類來構造新類。繼續(上溯造型)是最少見的一種做法,因此在使用它時要特別慎重。只有在清楚知道繼續在所有方法中最有效的前提下,才可考慮使用它。為判定自己到底應該選用合成還是繼續,一個最簡單的辦法就是考慮是否需要從新類上溯造型回基礎類。如果必須上溯造型,就需要使用繼續。