抽象类中的Super()

cri*_*nix 1 java abstract-class super

我有以下程序:

public abstract class geometricFigure {
    private int dim1, dim2;

    public geometricFigure(int dim1, int dim2) {
        super();
        this.dim1 = dim1;
        this.dim2 = dim2;
    }

    public geometricFigure() {
        this.dim1 = 0;
        this.dim2 = 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

我很难理解,super()参数化构造函数中的方法是做什么的.我在这里可以看到这个抽象类没有扩展任何类,我很难理解super()它所调用的超类是什么方法.

顺便说一句.这个类由另外两个名为Echilateral Triangle和的类扩展Circle.

public class echilateralTriangle extends geometricFigure {
    public echilateralTriangle() {
        super(1, 1);
    }

    public echilateralTriangle(int dim1, int dim2) {
        super(dim1, dim2);
    }
}
Run Code Online (Sandbox Code Playgroud)

圈级:

public class Circle extends geometricFigure {
    public Circle() {
        super(1, 1);
    }

    public Circle(int dim1, int dim2) {
        super(dim1, dim2);
    }
}
Run Code Online (Sandbox Code Playgroud)

Mur*_*nik 6

super使用传递给它的参数调用父类的构造函数.在这种情况下,super()调用父的无参数构造函数.一个没有显式声明其父级的类会隐式扩展Object,所以这里super()将调用Object默认构造函数,如果省略了调用,它也会隐式执行.所以这没有错,只是多余的.