2017-02-13 65 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);