摘要中的 Super() class
Super() in abstract class
我有以下程序:
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;
}
}
我很难理解,参数化构造函数中的super()
方法是做什么的。我可以在这里看到这个抽象 class 没有扩展任何 class 并且我很难从它调用的 superclass 中理解什么 super()
方法。
顺便说一句。此 class 由另外两个 class 扩展,称为 Echilateral Triangle
和 Circle
。
public class echilateralTriangle extends geometricFigure {
public echilateralTriangle() {
super(1, 1);
}
public echilateralTriangle(int dim1, int dim2) {
super(dim1, dim2);
}
}
循环class:
public class Circle extends geometricFigure {
public Circle() {
super(1, 1);
}
public Circle(int dim1, int dim2) {
super(dim1, dim2);
}
}
super
使用传递给它的参数调用父 class' 构造函数。在这种情况下,super()
调用父级的无参数构造函数。没有显式声明其父级的 class 隐式扩展了 Object
,因此这里 super()
将调用 Object
的默认构造函数,它也会隐式调用被省略了。所以没有错,只是多余。
我有以下程序:
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;
}
}
我很难理解,参数化构造函数中的super()
方法是做什么的。我可以在这里看到这个抽象 class 没有扩展任何 class 并且我很难从它调用的 superclass 中理解什么 super()
方法。
顺便说一句。此 class 由另外两个 class 扩展,称为 Echilateral Triangle
和 Circle
。
public class echilateralTriangle extends geometricFigure {
public echilateralTriangle() {
super(1, 1);
}
public echilateralTriangle(int dim1, int dim2) {
super(dim1, dim2);
}
}
循环class:
public class Circle extends geometricFigure {
public Circle() {
super(1, 1);
}
public Circle(int dim1, int dim2) {
super(dim1, dim2);
}
}
super
使用传递给它的参数调用父 class' 构造函数。在这种情况下,super()
调用父级的无参数构造函数。没有显式声明其父级的 class 隐式扩展了 Object
,因此这里 super()
将调用 Object
的默认构造函数,它也会隐式调用被省略了。所以没有错,只是多余。