2013-08-27 54 views
2

所以我有一个节点类,我还没有学习链表,所以我不能使用它。为了构建一个节点对象我想要的参数是这样的:作为超类构造函数中的参数类型的子类型java

Node(int numberOfNode, type complex or simpel) 

我有节点的两个子类称为SimpelnodecomplexNode等节点对象可以是其中一方。我需要做什么以使参数可以是两种类型?

+0

看起来你需要多重继承! –

+0

据我所知,Java中没有多重继承。 (它可能会以某种方式进行模拟。)无论如何,为什么他需要多重继承来解决这个问题? –

回答

1
Node(int numberOfNode, Node node) 

由于SimpleNodeComplexNodeNode两个子类,一个SimpleNodeNodeComplexNodeNode。因此使用Node作为参数类型将允许传递一个SimpleNode以及一个ComplexNode

+0

非常感谢大家,我仍然在学习界面,所以我要试试这个,我更熟悉这个^ __ ^。 – user2720690

3

使用继承

public interface Node{ 
    //... 
} 

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

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

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

public class SimpleNode implements Node{ 
    public SimpleNode(int numberOfNode){ 
     //... 
    } 
} 
+0

这是如何回答这个问题的。他已经使用继承,并询问Node构造函数的第二个参数应该是什么类型。 –

+0

你不能从构造函数中获取类型,你应该使用继承来完成它。 – 2013-08-27 08:10:42

1

您需要创建SimpelnodecomplexNode,使他们从节点延伸。

这样你可以这样做:

Node n = new Simpelnode(); 

Node n = new complexNode(); 

也应该阅读java inheritance并明白它的意思

0

据我理解你的问题..

使用构造函数创建节点接口

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

让两个类实现它SimpleNode的和ComplexNode

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

相关问题