(Java)列表类型和继承

时间:2015-10-25 16:12:59

标签: java list inheritance

我有关于继承类和List类型的问题。想象一下,您已经创建了一个名为Polygon的类,其中包含一些方法(计算周长,面积等)和一个名为Triangle的类,它扩展了Polygon。同时,在您的Main类中,您已创建了List类型,可以保存Polygon个对象。一切都属于同一个包。

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

示例:

类多边形

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);

}

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

1 个答案:

答案 0 :(得分:2)

我不确定你的问题。

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

List<Polygon> polygonList = new ArrayList<Polygon>();
Triangle triangle = new Triangle();
polygonList.add(triangle);

答案是,因为TrianglePolygon

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

List<Triangle> triangleList = new ArrayList<Triangle>();
List<Polygon> polygonList = triangleList;

答案是,因为List<Triangle>不是List<Polygon>。有关详细信息,请参阅this question

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