日期:2014-05-20  浏览次数:20680 次

关于继承的一个很基础的问题
为什么compute_2无法继承compute:
class   compute
{  
    int   i1;
    int   i2;
    compute(int   m,int   n)
    {    
          i1=m;
          i2=n;
    }
    int   sum()
    {
          return   i1+i2;
    }
    int   minus()
    {
          return   i1-i2;
    }
   
}


class   compute_2   extends   compute
{
      int   multiply()
      {
            return   i1*i2;
      }
      double   divide()
      {
            return   i1/i2;
      }
}


编译compute_2.java时报错提示是:compute_2.java:1:compute(int,int)   in   compute   cannot   be   applied   to   ()   class   compute_2   extends   compute

于是我把compute的构造函数注释掉以后又可以编译了,不知道为什么会这样啊?
麻烦各位了!!

------解决方案--------------------
子类构造函数会默认调用父类无参数构造函数
而你的父类没有无参数构造函数
在子类中添加
compute(int m,int n)
{
super(m,n);
}
就可以了