以下がJavaで機能しないように見える理由を理解しようとしています。
基本的な抽象クラスは次のとおりです。
public abstract class Shape {
}
2つの具体的なクラスCircleがあるとしましょう。
public class Circle extends Shape {
}
複数のコンストラクターを持つSquare:
public class Square extends Shape {
public Square(Shape shape)
{
// nothing
}
public Square(List<Shape> shapes)
{
// nothing
}
}
このコードを考えると:
Circle c = new Circle();
List<Circle> cList = new ArrayList<Circle>();
Square s = new Square(c);
Square s2 = new Square(cList);
最後の行でエラーが発生します。
The constructor Square(List<Circle>) is undefined.
しかし、私はSquareにパラメーターを受け取るコンストラクターを持っておりList<Shape>
、CircleはShapeです-単一のShapeを受け取るコンストラクターは問題ありません。そのため、なぜこのエラーが発生するのかわかりません。ご協力いただきありがとうございます。