У меня есть такая программа:
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()
в параметризованном конструкторе. Здесь я вижу, что этот абстрактный класс не расширяет какой-либо класс, и мне трудно понять, какой super()
метод из какого суперкласса он вызывает.
Кстати. Этот класс расширен двумя другими классами, называемыми Echilateral Triangle
и Circle
.
public class echilateralTriangle extends geometricFigure {
public echilateralTriangle() {
super(1, 1);
}
public echilateralTriangle(int dim1, int dim2) {
super(dim1, dim2);
}
}
Класс круга:
public class Circle extends geometricFigure {
public Circle() {
super(1, 1);
}
public Circle(int dim1, int dim2) {
super(dim1, dim2);
}
}
Object
даже вашgeometricFigure
- person Onheiron   schedule 29.03.2017Object
класс, поэтому я бы предположил, что даже если ваш абстрактный класс явно не расширяет какой-либо класс, вызовsuper()
в конечном итоге все равно там закончится. - person domsson   schedule 29.03.2017super()
вызывает конструктор суперкласса без аргументов (Object
в вашем случае). Это автоматически добавляется к любому конструктору, который не содержит вызоваsuper()
илиthis()
компилятором. - person Thomas   schedule 29.03.2017