向上轉型和向下轉型

2022-04-11 21:04:50 字數 431 閱讀 8984

例如我現在有兩個類,他們之間是繼承的關係:

class

animal

}class dog extends

animal

void

bark()

}

通俗地講,向上轉型就是把子類的物件轉化為父類的物件,如:

animal animal = new dog();

但是注意,向上轉型後,父類只能訪問與子類共有的方法,如以下**就會出現編譯錯誤:

animal.bark(); //出錯

向下轉型則需要強制型別轉換:

animal animal = new dog();

dog dog = (dog) animal;

總的來說,向上轉型總是安全的,向下轉型則未必,可能會發生classcastexception.

向上轉型和向下轉型

向上轉型 子類向上轉型為父類 注意點 轉型後父類與子類的同名函式中,子類的函式可以覆蓋父類的函式,但子類自己定義的函式將被隱藏 class a public void a2 class b extends a public void b2 public class c 向下轉型 父類被強制轉型為子類...

向上轉型和向下轉型

在j a中,繼承是乙個重要的特徵,通過extends關鍵字,子類可以復用父類的功能,如果父類不能滿足當前子類的需求,則子類可以重寫父類中的方法來加以擴充套件。而在應用中就存在著兩種轉型方式。比如有父類parent,子類child1.向上轉型 父類的引用指向子類的例項parent p new chil...

向下轉型,向上轉型

package cn.dali.code24 向上轉型 父類引用指向子類物件 格式 父類名稱 物件名 new 子類名稱 向下轉型 當我們使用父類引用指向子類物件的時候,我們想把父類物件轉為子類物件時,需要向下轉型 向下轉型就是乙個還原動作。格式 子類名稱 物件名 子類名稱 父類物件 注意 乙個父類有...