构造函数溢出Java

构造函数溢出Java,java,constructor,Java,Constructor,这是我程序的一部分代码。我关心的是AddTotalPermiture的构造函数覆盖警告。计划中所有其他不重要的部分都被遗漏了。如何修复构造函数重写 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;

这是我程序的一部分代码。我关心的是AddTotalPermiture的构造函数覆盖警告。计划中所有其他不重要的部分都被遗漏了。如何修复构造函数重写

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();
}

你所描述的并不是最重要的。如果不指定默认构造函数,编译器将创建默认构造函数。如果它是一个子类,它将调用默认的父构造函数(super()),它还将把所有实例变量初始化为由类型的默认值确定的默认值(0表示数字类型,false表示布尔值,null表示对象)


当子类与超类的实例方法具有相同的名称、参数数量/类型以及相同的返回类型时,就会发生重写。在这种情况下,子类将覆盖超类的方法。

你所说的“构造函数覆盖”是什么意思?在你发布的代码中哪里有构造函数?如果您看到错误消息并需要帮助,那么向我们展示完整的消息是有意义的。它是否警告您正在调用构造函数内部的可重写方法?我假设他说的是
public Triangle
@BuhakeSindi:在他告诉我们之前,我什么都不假设。是的,这是关于在构造函数内部调用一个可重写的方法,这是一件潜在的危险的事情。我不认为这是他的问题,但鉴于这是一个写得非常糟糕且不完整的问题,很难判断。请注意,我不是你的选民。