如果子類屬於相同的層次結構,我們是否可以向下投射超類?scjp:類鑄造規則集
例如:這裏
class Building { }
public class Barn extends Building {
public static void main(String[] args) {
Building build1 = new Building();
Barn barn1 = new Barn();
//Barn barn2 = (Barn) build1; // line number 10
Object obj1 = (Object) build1;
//String str1 = (String) build1; // line number 12
Building build2 = (Building) barn1;
}
}
回答說只有12行註釋將使代碼編譯。但是,即使第10行被註釋了,代碼也只能被編譯。請幫忙。
爲什麼會註釋行'10'使代碼編譯失敗? –
除了@RohitJain說你在第10行鑄造完全沒問題。 –
檢查http://stackoverflow.com/questions/4862960/explicit-casting-from-super-class-to-subclass – Rohan