This question already has answers here:
When do I use super()?

(11个答案)


4年前关闭。





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


}


所以基本上所有内容都在标题中。我想知道为什么我需要在超类中使用super()。

谢谢。

最佳答案

如果构造函数没有显式调用超类构造函数,则Java编译器会自动将调用插入到超类的无参数构造函数中。如果超类没有无参数构造函数,则将出现编译时错误。对象确实具有这样的构造函数,因此如果对象是唯一的超类,就没有问题。


according to docs.oracle

10-06 05:02