У меня возникла проблема с конструкторами.Java несколько конструкторов с одним параметром в каждом и другом типе
public abstract class ShapeDrawer implements iShapeDrawer {
protected SimpleLine line; // the line to be drawn
protected SimpleOval oval; // the oval to be drawn
protected SimpleTriangle triangle; // the triangle to be drawn
protected SimplePolygon rectangle; // the triangle to be drawn
public ShapeDrawer(SimpleLine line) {
this.line = line;
}
public ShapeDrawer(SimpleOval oval) {
this.oval = oval;
}
public ShapeDrawer(SimpleTriangle triangle) {
this.triangle = triangle;
}
public ShapeDrawer(SimplePolygon rectangle) {
this.rectangle = rectangle;
}
}
Когда я пытаюсь запустить, он идет к первому constuctor и броски и ошибки для каждого конструктора.
error: incompatible types: SimpleOval cannot be converted to SimpleLine super(oval);
И это немного из Овального класса
public class OvalDrawer extends ShapeDrawer implements iShapeDrawer{
public OvalDrawer(SimpleOval oval) {
super(oval);
}
}
И у меня есть SimpleShape класс, который является родительским классом SimpleOval, SimpleLine и т.д., и имеет все методы. Пример SimpleOval
public class SimpleOval extends SimpleShape {
public SimpleOval(int xStart, int yStart, int xEnd, int yEnd, Color colour, int thickness, ShapeType shapeType) {
super(xStart, yStart, xEnd, yEnd, colour, thickness, shapeType);
}
Любые предложения?
Просто примечание: 'OvalDrawer' не должен реализовывать' iShapeDrawer', потому что он расширяет 'ShapeDrawer', который уже реализует этот интерфейс. – Berger
Я не могу воспроизвести эту проблему. – Tom
Мое предложение состояло в том, чтобы иметь специальную реализацию ShapeDrawer для каждой из классов SimpleLine, SimpleOval и т. Д. –