所以我有一个节点类,我还没有学习链接列表,所以我不能使用它。要构造节点对象,我希望参数如下:
Node(int numberOfNode, type complex or simpel)
我有两个名为Simpelnode
和complexNode
的节点子类,因此节点对象可以是其中之一。我需要做什么才能使参数属于两种类型?
答案 0 :(得分:3)
使用继承
public interface Node{
//...
}
public class SimpleNode implements Node{
//...
}
public class ComplexNode implements Node{
//...
}
然后,您可以像这样添加Constructor
:
public class SimpleNode implements Node{
public SimpleNode(int numberOfNode){
//...
}
}
答案 1 :(得分:1)
Node(int numberOfNode, Node node)
由于SimpleNode
和ComplexNode
都是Node
的子类,SimpleNode
是 Node
和{{{ 1}} 是 ComplexNode
。因此,使用Node
作为参数类型将允许传递Node
以及SimpleNode
。
答案 2 :(得分:0)
您需要创建Simpelnode
和complexNode
并使其从Node扩展。
你可以这样做:
Node n = new Simpelnode();
或
Node n = new complexNode();
您也应该阅读java inheritance并了解其含义
答案 3 :(得分:0)
据我了解你的问题..
使用构造函数
创建一个Node接口 Node(int numberOfNode,Object o)
或Node(int numberOfNode,Node o)
让两个类实现SimpleNode和ComplexNode
如下SimpleNode(int numberOfNode,SimpleNode o)
和ComplexNode(int numberOfNode,ComplexNode o)