當子類的對象被分配到一個超類的變量,爲什麼只有這些成員 是其超類ClassCastException異常,請幫助我真正的概念
class A {
int i=10;
void adsip() {
System.out.println(i);
}
}
class B extends A {
int j=20;
void bdsip() {
System.out.println(i+j);
}
}
class inherit4 {
public static void main(String[] x) {
A a=new A();
B b=new B();
System.out.println("b.i="+b.i+"b.j="+b.j);
b.adsip();
b.bdsip();
a=b;
System.out.println("a.i="+a.i);
a.adsip();
}
}
上面的代碼定義工作正常訪問 但添加aj和a.bdisp()後;生成錯誤,據我所知在上面代碼中的& b代表 參考A類對象的內存分配B爲什麼代碼不能訪問a.j和a.bdsip();在上面的代碼中。
你說你父親可以訪問子數據,但反過來是不可能的。但A是父母。它不能訪問B類的方法。請澄清。 – RuntimeException
*在繼承父母可以訪問子數據,但相反是不可能的*你錯了。子類可以訪問父類中的'protected'和'public'數據(如果子類與父類位於同一個包中,它也可以訪問「默認」數據),但父類不知道具體的具體情況數據在兒童班... –
對不起我的錯!我打錯了。抱歉的問題.... – Anita