1. 程式人生 > >強制型別轉換什麼時候用到

強制型別轉換什麼時候用到

一.向下型別轉換(子類轉父類)。

當子類有的方法,父類中沒有的時候,這時候就需要將父類轉換為子類,這樣就可以使用子類裡有父類裡沒有的方法了。

例如:Fruit類裡有grow()方法,Apple類繼承自Fruit類,重寫了Fruit類裡的grow()方法,並且自己增加了一個sing()方法。

這時如果有一個父型別(Fruit)的引用f指向子型別(Apple)的物件(Fruit f  = new Apple()),這時的f裡就只有一個grow()方法,並不能使用

sing()這個方法,因為f是Fruit的引用,當使用多型方式呼叫方法時,首先檢查父類中是否有 grow()方法,如果沒有則編譯錯誤;如果有,再去呼叫子類的 grow()方法。

所以如果這時想呼叫sing()方法的話,就得向下強制型別轉化Apple a = (Apple)f。

注意:是誰的引用才能呼叫誰的方法。是Fruit的引用就不能呼叫Apple裡的grow()方法,只有強制轉換成Apple型別的引用才能呼叫grow()方法。