看板 java 關於我們 聯絡資訊
小弟有三個Class 分別為A,B,C 。 B繼承A。 想由C傳參數到A B的參數經由建構子傳到A 在C class 內利用A new 出B的實體叫x x的方法取值 (小弟是Java新手可能表達不大清楚,希望前輩見量) 問題1 我取到的值為A Class預設的值 BB1 而非 B Class建構的 BB2 問題2 當我將A Class 的註1 跟B Class 的註2 該行移除後, AB Class都可一編譯但C Class會編譯失敗!      真的搞不清楚原因!也爬過文了!在此跟前輩們請教! 程式碼如下 class A{ String a1="AA1"; String b1="BB1"; A(){ }//註1 A(String b1){this.b1=b1;} public void display(){} public void setData(String a){ this.a1=a; } } class B extends A{ String a2; String b2="BB2"; B(){ }//註2 B(String b2){super(b2);} public void display(){ System.out.println("A.a1 =" + a1); System.out.println("透過B的健構值傳到A.b1=" + b1); } } class C{ public static void main(String args[]) { A x=new B(); x.setData("CC1"); x.display(); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.248.16.201 ※ 編輯: blackmark 來自: 111.248.16.201 (12/17 22:33)
panpan7638:你不是本來就是印b1嗎? 12/17 22:40
panpan7638:不好意思看錯 12/17 22:42
LPH66:呃, 我覺得樓上的問題很有道理啊...b1和b2又不一樣... 12/17 22:46
LPH66:有什麼道理你要叫b1他會跑出b2來? 12/17 22:47
panpan7638:其實重點是他根本沒有呼叫到帶參數的那個建構子 12/17 22:49
LPH66:也是 剛剛沒仔細看 12/18 00:06
blackmark:感恩~~知道問題了! 12/18 17:21