public class Node {
public Node right;
}
public class SpecialNode extends Node {
public String specialLabel;
}
public class Testmain {
public static void main(String[] args) {
Node n1 = new Node();
Node n2 = new Node();
Node n3 = new Node();
n1.right=n2;
n2.right=n3;
// some calculations --> now n2 has to become a SpecialNode, how ???
}
}
我正在使用 Node 实现一个单链表,其中每个节点都知道它的正确邻居。我创建了一个列表:节点 n1-> 节点 n2-> 节点 n3。创建列表后,它只包含 Node 类型的元素。现在我想告诉 Node n2 是一个 SpecialNode,以便提供一个 specialLabel。在向下转换之后,列表应该看起来像节点 n1-> SpecialNode n2-> 节点 n3。如何才能做到这一点?
(请注意,n2 不知道它的左邻居。请注意,我必须在创建列表后告诉 n2 是特殊的,因此在将其初始化为超类的节点之后,因为我需要在决定哪个节点之前进行一些计算要特别。)