在Java編程中,類的繼承是基本特性之一。子類繼承父類的屬性和方法,同時還可以擴展和重寫父類的方法。在實際開發中,我們經常需要在父類和子類之間進行類型轉換。
在Java中,子類和父類之間的轉換可以分為向上轉型和向下轉型兩種類型。向上轉型(Upcasting)是將子類對象賦值給父類引用變量的過程。向下轉型(Downcasting)則是將父類對象強制轉換為子類對象的過程。
向上轉型是比較常見的一種類型轉換。具體實現方法是,創建子類對象后,用父類引用變量來引用該對象。這時,該對象就被認為是父類類型,無法直接調用子類特有的方法。代碼如下所示:
class FatherClass { public void doSomething() { System.out.println("FatherClass"); } } class SonClass extends FatherClass { public void doSomething() { System.out.println("SonClass"); } public void doSonSomething() { System.out.println("doSonSomething"); } } class Test { public static void main(String[] args) { SonClass sonClass = new SonClass(); FatherClass fatherClass = sonClass; //向上轉型 fatherClass.doSomething(); //調用父類方法 } }
上述代碼中,實例化了一個SonClass對象sonClass,然后將其向上轉型為FatherClass類型的對象fatherClass。通過fatherClass調用了父類的方法doSomething()。
向下轉型則比較少用,需要注意的是它需要使用強制類型轉換符(即子類類型)。具體示例如下:
class Test { public static void main(String[] args) { FatherClass fatherClass = new FatherClass(); SonClass sonClass = (SonClass) fatherClass; //向下轉型 sonClass.doSomething(); //調用子類重寫的方法 sonClass.doSonSomething(); //調用子類特有方法 } }
上述代碼中,首先創建了一個FatherClass類型的對象fatherClass,然后使用向下轉型將其轉換為SonClass類型的對象sonClass。需要注意的是,這里需要使用強制類型轉換符,否則會導致編譯錯誤。通過sonClass調用了子類的方法doSomething()和特有方法doSonSomething()。