我试图弄清楚为什么以下内容在 Java 中似乎不起作用。
这是基本的抽象类:
public abstract class Shape {
}
假设它有两个具体的类,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 的构造函数很好。所以我不明白为什么我会收到这个错误。谢谢你的帮助。