这是代码,是我程序的一部分。我关注addTotalPerimeter的构造函数覆盖警告。该计划的所有其他不重要的部分都被遗漏了。我该怎么做才能修复构造函数覆盖?
public Triangle(int side_a,int side_b,int side_c){
if(isValid() == true)
{
this.side_a = side_a;
this.side_b = side_b;
this.side_c = side_c;
accumulator = addTotalPerim();
}
else
{
this.side_a = 1;
this.side_b = 1;
this.side_c = 1;
}
counter++;
}
private boolean isValid(){
int x = 6;
int y = 5;
if(side_a > 0 && side_b > 0 && side_c > 0){
y = 1;
}
if((side_a + side_b > side_c) && (side_a + side_c > side_b) && (side_b + side_c > side_a)){
x = 1;
}
if(x == y)
return true;
else
return false;
}
public int addTotalPerim(){
accumulator += calcPerim();
return accumulator += calcPerim();
}
答案 0 :(得分:0)
你所描述的并不是最重要的。如果未指定默认构造函数,编译器将创建默认构造函数。如果它是一个子类,它将调用默认的父构造函数(super()),它还会将所有实例变量初始化为由类型的默认值确定的默认值(数字类型为0,布尔值为false,对象为null)
当子类具有相同的名称,参数的数量/类型以及与超类的实例方法相同的返回类型时,会发生覆盖。在这种情况下,子类将覆盖超类的方法。