Java 向下類(lèi)型轉(zhuǎn)換示例
向下類(lèi)型轉(zhuǎn)換示例
向下類(lèi)型轉(zhuǎn)換與向上類(lèi)型轉(zhuǎn)換動(dòng)作相反,是指將父類(lèi)對(duì)象引用轉(zhuǎn)換為子類(lèi)對(duì)象引用。這種轉(zhuǎn) 換通常會(huì)出現(xiàn)問(wèn)題,因?yàn)楹苊黠@子類(lèi)中的內(nèi)容可能并不存在于父類(lèi)中,如果直接將父類(lèi)對(duì)象引用 賦值為子類(lèi)定義的變量,程序會(huì)編譯失敗,即父類(lèi)的對(duì)象并不一定是子類(lèi)的對(duì)象。因此,向下類(lèi) 型轉(zhuǎn)換總是伴隨著向上類(lèi)型轉(zhuǎn)換一起出現(xiàn)的。
//向下類(lèi)型轉(zhuǎn)換示例——父類(lèi)
public class ParentClass {
public void print() {
System.out.println("父類(lèi)方法");
}
}
//向下類(lèi)型轉(zhuǎn)換示例——子類(lèi)
public class ChildClass extends ParentClass{
public void childMethod() {
System.out.println("只在子類(lèi)中定義的方法");
}
public static void main(String[] args) {
ChildClass child = new ChildClass();//向上類(lèi)型轉(zhuǎn)換
child.print();
ChildClass childClass =(ChildClass)child;//強(qiáng)制向下類(lèi)型轉(zhuǎn)換
child.print();
childClass.childMethod();
}
}
點(diǎn)擊加載更多評(píng)論>>