-2
在我印象中,超不能調用子類java.But今天我寫了這樣的代碼,這讓我感到困惑......請幫幫我!謝謝超類可以調用子類
package CW;
public class A extends B {
int a =100;
public A(){
super();
System.out.println(a);
a=200;
}
public static void main(String[] args) {
System.out.println(new A().a);
}
}
class B{
public B(){
System.out.println(((A) this).a);
}
}
是Java有這樣的語法嗎? ((A) this).a
超類可以調用子類。它允許嗎?
是Java比C更安全,但它並不能完全防止你編寫錯誤的代碼。是的,編譯和運行,但如果你寫,'System.out.println(new B());'你會明白爲什麼鑄造充其量是棘手的,最糟糕的是直接危險。更大的問題是你爲什麼認爲該投射線不是或不應該是有效的Java? –
如果不允許,這將不會編譯和運行。 –
您將它投射到'A',所以您可以從那裏調用方法。這確實是可能的,但是你最好先檢查'A'的這個實例是否屬實。 – Bubletan