Re: [問題] 健構子傳值到父類別再由其他類別取值!
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):