当没有明确定义的超类时,为什么在超类中使用超级调用

mar*_*reG 2 java class super

package Geometry;

public abstract class GeometryFigures{

protected double surfaces;
protected double perimeter;

public GeometryFigures(double surfaces, double perimeter) {

    super(); //**<---Why use super call here?**

    this.surfaces= surfaces;
    this.perimeter= perimeter;
}

public double getSurfaces() {
    return surfaces;
}

public double getPerimetre() {
    return perimeter;
}


}
Run Code Online (Sandbox Code Playgroud)

所以基本上一切都在标题中.我想知道为什么我需要在超类中使用super().

谢谢你的帮助.

小智 5

在这种情况下,super()引用Object的构造函数,它是每个类的超类.

实际上你并不需要调用它,因为默认情况下,如果没有调用其他超类构造函数,构造函数总是尝试调用super().

我已经看到一些代码生成器自动添加它,我的猜测是它被认为是一个最佳实践,作为一个明确的提示,将调用super().