2013-08-27 133 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)

相關問題