Я работаю над проектом, который выдает эту ошибку "неявный супер-конструктор Shape2D не определен. Должна быть простота вызова другого конструктора", и я не совсем понимаю.
Вот мой класс Shape
import java.awt.Color;
import java.lang.Comparable;
abstract class Shape implements Comparable<Shape>{
private final int id;
private final String name;
private final String description;
private Color color;
//abstract method
abstract double area();
abstract double perimeter();
//get and set and non-abstract method
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
public Color getColor() {
return color;
}
public void setColor(Color color) {
this.color = color;
}
//non default constructor
public Shape(int id, String name, String description, Color color) {
this.id = id;
this.name = name;
this.description = description;
this.color = color;
}
@Override
public int compareTo(Shape o) {
return 0;
}
@Override
public String toString() {
return String.format("%s,%s,%s,%s",id,name,description,color);
}
}
и вот мой класс Shape2D, который даст переменные ширины и высоты
import java.awt.Color;// this is where the problem occur. if i remove it, the abstract class has an error " Implicit super constructor Shape() is undefined for default constructor. Must define an explicit
constructor and Implicit super constructor Shape() is undefined. Must explicitly invoke another constructor"
abstract class Shape2D extends Shape {
public final double height;
public final double width;
Shape2D(height , width){
this.height = height;
this.width = width;
}
public Shape2D(int id, String name, String description, Color color) {
super(id, name, description, color);
}
}
У меня есть суперкласс, который