以下代码我希望的结果是100,但为什么运行后结果确实10??
class Test1{
private int i = 0;
Test1(int i){
this.i = i;
}
public int value(){return i;}
public void readi(){System.out.println(Integer.toString(i));}
}public class Test extends Test1{
Test(){
super(10);
}
public int value(){return super.value()*10;}
public static void main(String[] args){
Test test = new Test();
test.value();
test.readi();
}
}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【llm0528】截止到2008-07-28 16:33:34的历史汇总数据(不包括此帖):
    发帖的总数量:64                       发帖的总分数:1330                     每贴平均分数:20                       
    回帖的总数量:56                       得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:64                       结贴的总分数:1330                     
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

     public void readi(){System.out.println(Integer.toString(i));}
    看你写的这个函数...
    输出的是i吧...你的i给了个10,当然输出10了
      

  3.   

     System.out.println(test.value());
    这样就是100了.
    你没有输出test.value()的结果.
      

  4.   

    那当然,你打印的是i,父类Test1的i在实例时初始化为10,以后再也没有修改过.
      

  5.   

    //注意代码格式class Test1 { private int i = 0; Test1(int i) {
    this.i = i;
    } public int value() {
    return this.i;
    } public void readi() {
    System.out.println(Integer.toString(this.i));
    }}public class Test extends Test1 { Test() {
    super(10);
    } public int value() {
    return super.value() * 10;
    } public static void main(String[] args) {
    Test test = new Test();
    System.out.println(test.value());  //看看这行输出多少
    test.readi();  //i 当然等于 10,因为你 super(10); 了
    }}