2017-02-13 67 views
0

我對Java和麪向對象編程都比較陌生。我正在學習繼承和麪向對象。我有這個1班,可以說自行車,它有一般的信息。然後我有這些其他類,讓我們說體育和道路,延伸自行車,但我想做一個這些類的鏈接列表。所以我會有一個包含體育和道路的鏈接列表。但我不知道如何去實施這個。我知道如何建立一個基於一個類但不是多個類的鏈表。謝謝。如何創建不同類的鏈表?

+0

如果'體育「和」道路「是」自行車「的子類,則」列表「或」鏈接列表「可以包含任何這些類的對象。這就是繼承的本質 - 這些類型的對象也是「自行車」。 (「運動」對於某種類型的自行車來說是個可怕的名字,「SportsBike」要好得多,如果這就是你的意思,同樣的道路,因爲我希望這個班級代表一條路,而不是一條「道路」自行車「。) – ajb

+0

@ajb對不起,這就是我的意思。 SportsBike和RoadBike。是不是LinkedList 列表?它應該使用* next和諸如此類的東西。 –

回答

1

只需創建一個基類的LL並添加所需的元素。

import java.util.*; 

public class ans{ 
    public static void main(String[] args){ 
    LinkedList<Parent> list = new LinkedList<Parent>(); 

    list.add(new ChildA()); 
    list.add(new ChildB()); 
    list.add(new Parent()); 

    for(Parent p: list) 
     System.out.println(p); 
    } 
} 

class Parent{ 
    public String toString(){ 
    return "I am a Parent"; 
    } 
} 

class ChildA extends Parent{ 
    public String toString(){ 
    return "I am a ChildA"; 
    } 
} 

class ChildB extends Parent{ 
    public String toString(){ 
    return "I am a ChildB"; 
    } 
} 

隨着輸出

I am a ChildA 
I am a ChildB 
I am a Parent 
+0

啊。我懂了。我在C之後學習Java,所以我想我必須通過下一步連接它們。在java中是所有這些標準函數嗎? –

+0

@JMei是的。你可以實現你自己的LL,但總是喜歡標準的實現。有關[LinkedList](https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html)和[for each]的更多信息(http://docs.oracle.com/javase /specs/jls/se8/html/jls-14.html#jls-14.14.2)。 –

0

由於自行車是超類,自行車類型的列表可用於存儲其subclasses.Something的對象這樣

Road r1=new road(); 
Road r2=new road(); 
Sports s1=new Sports(); 
Sports s2=new Sports(); 
List<Bike> bikeType=new ArrayList<Bike>(); 
bikeType.add(r1); 
bikeType.add(r2); 
bikeType.add(s1); 
bikeType.add(s2);