子类类型作为超类构造函数java中的参数类型

时间:2013-08-27 07:58:29

标签: java parameters constructor subclass superclass

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

Node(int numberOfNode, type complex or simpel)

我有两个名为SimpelnodecomplexNode的节点子类,因此节点对象可以是其中之一。我需要做什么才能使参数属于两种类型?

4 个答案:

答案 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)

由于SimpleNodeComplexNode都是Node的子类,SimpleNode Node和{{{ 1}} ComplexNode。因此,使用Node作为参数类型将允许传递Node以及SimpleNode

答案 2 :(得分:0)

您需要创建SimpelnodecomplexNode并使其从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)