簡體   English   中英

子類類型作為超類構造函數java中的參數類型

[英]A subclass type as parameter type in superclass constructor java

所以我有一個節點類,我還沒有學習鏈接列表,所以我不能使用它。 要構造節點對象,我希望參數如下:

Node(int numberOfNode, type complex or simpel)

我有兩個名為SimpelnodecomplexNode的節點子類,因此節點對象可以是其中之一。 我需要做什么才能使參數屬於這兩種類型?

使用繼承

public interface Node{
    //...
}

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

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

然后,您可以添加如下Constructor

public class SimpleNode implements Node{
    public SimpleNode(int numberOfNode){
        //...
    }
}
Node(int numberOfNode, Node node)

由於SimpleNodeComplexNode都是Node子類,因此SimpleNode NodeComplexNode Node 因此,使用Node作為參數類型將允許傳遞SimpleNodeComplexNode

你需要創建SimpelnodecomplexNode並使它們從Node擴展。

你可以這樣做:

Node n = new Simpelnode();

要么

Node n = new complexNode();

你也應該閱讀java繼承並理解它的含義

據我了解你的問題..

使用構造函數創建Node接口

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

使兩個類實現SimpleNode和ComplexNode

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM