(Java)列表类型和继承

(Java)列表类型和继承,java,list,inheritance,Java,List,Inheritance,我有一个关于继承类和List类型的问题。假设您使用一些方法(计算周长、面积等)创建了一个名为Polygon的类,以及一个名为Triangle的类,该类扩展了Polygon。同时,在主类中,您创建了一个列表类型,用于保存多边形对象。所有东西都属于同一个包裹 我怀疑它是下一个:如果我从类型Triangle创建一个对象,我可以将它保存到最后一个列表中吗 例如: 类多边形 public class Polygon{ //All his methods } 类三角形 public class Tr

我有一个关于继承类和
List
类型的问题。假设您使用一些方法(计算周长、面积等)创建了一个名为
Polygon
的类,以及一个名为
Triangle
的类,该类扩展了
Polygon
。同时,在主类中,您创建了一个
列表
类型,用于保存
多边形
对象。所有东西都属于同一个包裹

我怀疑它是下一个:如果我从类型
Triangle
创建一个对象,我可以将它保存到最后一个
列表中吗

例如:

类多边形

public class Polygon{

//All his methods


}
类三角形

public class Triangle extends Polygon{

//All his methods

}
主类

public static void main (String[] args){

List<Polygon> listPolygon = new ArrayList <Polygon> ();
Triangle example = new Triangle();

listPolygon.add(example);

}
publicstaticvoidmain(字符串[]args){
List listPolygon=newarraylist();
三角形示例=新三角形();
添加(示例);
}

非常感谢,很抱歉我的英语可能不好。我现在在练习很多。

我不确定你的问题

如果您的问题是,您可以这样做:

List<Polygon> polygonList = new ArrayList<Polygon>();
Triangle triangle = new Triangle();
polygonList.add(triangle);
List<Triangle> triangleList = new ArrayList<Triangle>();
List<Polygon> polygonList = triangleList;
答案是,因为
列表
不是
列表
。有关更多详细信息,请参阅


如果您使用的是IDE,如eclipse或IntelliJ,您应该很快发现您可以做什么或不能做什么,因为您会收到有用的错误消息。

您已经有了代码,但您会问我们“我可以吗”?为什么不试试呢?@Tom我很抱歉Tom,如果这很明显,但我现在正在学习,如果不可能,我希望得到一个“不”的答案,然后是一篇解释为什么不可能的文章,或者一个给我提供替代解决方案的答案。这与“如果很明显”无关。您已经有了此代码,但还没有尝试过?一次也没有?如果你愿意,你会得到你的答案。@Tom好的,对不起。感谢您的关注。请尝试您的代码。如果你不明白它为什么会这样,那么你可以更新你的问题,因为这是我们可以讨论的。但请先试试:)。如果OP对第二个案例不起作用的原因感到好奇,您可以链接到:)。非常感谢你们两位花时间回答我的问题。祝你过得愉快!:)