1

所以我有一个节点类,我还没有学习链接列表,所以我不能使用它。要构造一个节点对象,我希望参数是这样的:

Node(int numberOfNode, type complex or simpel)

我有两个称为节点的子类,Simpelnode因此complexNode节点对象可以是其中之一。我需要做什么才能使参数同时具有两种类型?

4

4 回答 4

3

使用继承

public interface Node{
    //...
}

public class SimpleNode implements Node{
    //...
}

public class ComplexNode implements Node{
    //...
}

然后,您可以添加Constructor这样的内容:

public class SimpleNode implements Node{
    public SimpleNode(int numberOfNode){
        //...
    }
}
于 2013-08-27T08:04:15.097 回答
1
Node(int numberOfNode, Node node)

因为SimpleNodeComplexNode都是 的子类Node,所以 aSimpleNode 是 a Node,并且 aComplexNode 是 a Node。所以使用Node作为参数类型将允许传递 aSimpleNode和 a ComplexNode

于 2013-08-27T08:05:12.697 回答
0

您需要创建Simpelnode并使complexNode它们从 Node.js 扩展。

这样你就可以做到:

Node n = new Simpelnode();

或者

Node n = new complexNode();

你也应该阅读java继承并理解它的含义

于 2013-08-27T08:04:32.430 回答
0

据我了解你的问题..

使用构造函数创建 Node 接口

Node(int numberOfNode,Object o) 或者Node(int numberOfNode,Node o)

让两个类实现它 SimpleNode 和 ComplexNode

如下SimpleNode(int numberOfNode,SimpleNode o)ComplexNode(int numberOfNode,ComplexNode o)

于 2013-08-27T08:05:08.143 回答