[問題] 健構子傳值到父類別再由其他類別取值!

看板java作者 (hunter)時間15年前 (2010/12/17 22:32), 編輯推噓3(304)
留言7則, 3人參與, 最新討論串1/2 (看更多)
小弟有三個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)

12/17 22:40, , 1F
你不是本來就是印b1嗎?
12/17 22:40, 1F

12/17 22:42, , 2F
不好意思看錯
12/17 22:42, 2F

12/17 22:46, , 3F
呃, 我覺得樓上的問題很有道理啊...b1和b2又不一樣...
12/17 22:46, 3F

12/17 22:47, , 4F
有什麼道理你要叫b1他會跑出b2來?
12/17 22:47, 4F

12/17 22:49, , 5F
其實重點是他根本沒有呼叫到帶參數的那個建構子
12/17 22:49, 5F

12/18 00:06, , 6F
也是 剛剛沒仔細看
12/18 00:06, 6F

12/18 17:21, , 7F
感恩~~知道問題了!
12/18 17:21, 7F
文章代碼(AID): #1D2tHmJj (java)
文章代碼(AID): #1D2tHmJj (java)