解决方案 »

  1.   

    因为你的B构造函数是含参构造,里面调用的是super(c),而非super()...因此不会自增..把B构造函数里的super(c)改为super()就会自增了..
      

  2.   

    要了解这个问题的执行步骤其实可以在代码上打上断点然后debug
    B b=new B('f',81.6f,79.0f);这句话就是调用B的构造函数,
    super(c);这句话是调用A的有参构造函数,
     this();这句话是调用A的无参构造函数,
    所以最后i的结果是101
      

  3.   


    class B extends A{
        float b1,b2;
        B(char c,float a,float b){
            // 楼主这里显示调用了父类的有参的构造方法,所以就不去再调用无参构造方法了
            // 楼主把super(c) 注释掉的话,那么B 还是会自动调用A的无参构造方法的
            super(c);
            b1=a;
            b2=b;
        }
    }