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

看板java作者 (沉默是金。)時間15年前 (2010/12/18 15:25), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《blackmark (hunter)》之銘言: : 小弟有三個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(); : } : } 你的確沒有建構 B(String) 啊 建構子只是讓你決定你要從哪條管道建立, 不是你寫了系統就會執行。 要達到你說的 你應該寫成 B(){super(b2); } -- I am a person, and I am always thinking . Thinking in love , Thinking in life , Thinking in why , Thinking in worth. I can't believe any of what , I am just thinking then thinking , but worst of all , most of mine is thinking not actioning... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.70.152.16 ※ 編輯: TonyQ 來自: 111.70.152.16 (12/18 15:26) ※ 編輯: TonyQ 來自: 111.70.152.16 (12/18 15:27)

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