gpt4 book ai didi

java - 从父类(super class) : Node to SpecialNode in a linked list 向下转型

转载 作者:行者123 更新时间:2023-11-29 05:55:19 24 4
gpt4 key购买 nike

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 类型的元素。现在我想告诉节点 n2 是一个 SpecialNode 以提供一个 specialLabel。向下转型之后,列表应该看起来像 Node n1-> SpecialNode n2-> Node n3。 如何做到这一点?

(请注意,n2 不知道它的左邻居。请注意,我必须在列表创建后告诉 n2 是特殊的,因此在将其初始化为父类(super class)的节点之后,因为我需要在决定哪个节点之前进行一些计算会很特别。)

最佳答案

你不能告诉 n2 是一个 SpecialNode,因为它从来没有

我认为您最好尝试用 SpecialNode 的新实例替换现有的 n2。让 n2 替换自己(如果它知道它在列表中的位置)或失败,至少给你一个 SpecialNode< 的新实例是一个好方法。在这种情况下,您必须手动将其连接到 n1

SpecialNode sn = n2.toSpecialNode();

关于java - 从父类(super class) : Node to SpecialNode in a linked list 向下转型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12383912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com