树子类与节点子类?

时间:2019-01-11 02:22:53

标签: java

我正在用Java编写。

我有一个BinaryTree类。它具有使用Node类的函数。 我已经编写了Binary Tree(TraversalTree)的子类,并获得了Node类(OrderNode)的子类。

如何获取从BinaryTree继承的TraversalTree函数以使用子类OrderNode?

public class BinaryTree {

  public Node root; // starting node of the tree

  public Node getRoot() {
      return root;
  }
}

public class Node {

  private int value; 
  private Node left, right, parent; 

  //constructor
  public Node(int value) {
      this.value = value; // data value to be stored in node
      left = null; // left child
      right = null; // right child
      parent = null; // parent node
  }
}

这是OrderNode的子类

public class OrderNode extends Node {

  public int preOrder,postOrder, inOrder;

  public OrderNode(int value) {
      super(value);
  }
}

然后在BinaryTree的这个子类中,TraversalTree。我希望它让子类OrderNode替换BinaryTree函数中的所有Node调用。

public class TraversalTree extends BinaryTree {

}

我试图搜索一堆,但是我撞墙了。也许我找不到合适的搜索词。但无论哪种方式,我似乎都找不到任何信息。

1 个答案:

答案 0 :(得分:1)

您可以使用super来访问超变量,并在超类引用变量中分配子类对象。

class TraversalTree extends BinaryTree {
    public TraversalTree(OtherNode otherNode){
        super.node=otherNode;
    }
    public OtherNode getRoot(){
        return (OtherNode)super.getRoot();
    }
}

这应将所有节点替换为otherNode。