我正在用Java编写。
我有一个BinaryTree类。它具有使用Node类的函数。 我已经编写了Binary Tree(TraversalTree)的子类,并获得了Node类(OrderNode)的子类。
如何获取从BinaryTree继承的TraversalTree函数以使用子类OrderNode? p>
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 {
}
我试图搜索一堆,但是我撞墙了。也许我找不到合适的搜索词。但无论哪种方式,我似乎都找不到任何信息。
答案 0 :(得分:1)
您可以使用super来访问超变量,并在超类引用变量中分配子类对象。
class TraversalTree extends BinaryTree {
public TraversalTree(OtherNode otherNode){
super.node=otherNode;
}
public OtherNode getRoot(){
return (OtherNode)super.getRoot();
}
}
这应将所有节点替换为otherNode。