作者blackmark (hunter)
看板java
标题[问题] 健构子传值到父类别再由其他类别取值!
时间Fri Dec 17 22:32:13 2010
小弟有三个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)
1F:推 panpan7638:你不是本来就是印b1吗? 12/17 22:40
2F:→ panpan7638:不好意思看错 12/17 22:42
3F:推 LPH66:呃, 我觉得楼上的问题很有道理啊...b1和b2又不一样... 12/17 22:46
4F:→ LPH66:有什麽道理你要叫b1他会跑出b2来? 12/17 22:47
5F:→ panpan7638:其实重点是他根本没有呼叫到带参数的那个建构子 12/17 22:49
6F:推 LPH66:也是 刚刚没仔细看 12/18 00:06
7F:→ blackmark:感恩~~知道问题了! 12/18 17:21