关于继承的一个很基础的问题
为什么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);
}
就可以了