如何在java中的ArrayList中使用inheritence?

时间:2015-06-20 07:20:20

标签: java inheritance

我有一个名为QGNode的课程延伸GNode,课程QGraph延伸Graph。在QGNode构造函数中,当我使用参数super调用ArrayList<QGNode>构造函数时,会发生错误。我误解了继承吗?

这是我的代码:

0 public class QuestionGraph extends Graph{    
1
2   public QuestionGraph(ArrayList<QGNode> nodes) {
3      super(nodes);  
4  }
5 }

1 public class Graph {
2
3 ArrayList<GNode> nodes;
4
5  public Graph(ArrayList<GNode> nodes) {
6      this.nodes = nodes;
7 }
8 }

错误发生在第3行,这是一个语法错误,IDE建议: create method (java.Util.Arraylist) in QuestionGraph

1 个答案:

答案 0 :(得分:4)

泛型中的继承有点不同。 在Java中,ArrayList<QGNode>不是ArrayList<GNode>的子类型。

Generics in Java and Inheritance

Inheritance and generics from Oracle documentation

How it works from Oracle documentation