所以我有點明白如何對象面向的作品,但我想知道,如果你能做到這一點:Java對象混亂
有一定類型的對象的ArrayList,讓我們說水果。假設我們有5種類型的水果,當我們添加到數組列表中時,我們會隨機添加5種類型之一。這是否可能,如果是的話,你會如何設置它?
所以我有點明白如何對象面向的作品,但我想知道,如果你能做到這一點:Java對象混亂
有一定類型的對象的ArrayList,讓我們說水果。假設我們有5種類型的水果,當我們添加到數組列表中時,我們會隨機添加5種類型之一。這是否可能,如果是的話,你會如何設置它?
的設立
因此,讓我們假設你有一個超Fruit
。
public class Fruit
那麼你已經有了一些類,使用它..
public class Apple extends Fruit
public class Pear extends Fruit
如果你想成爲厚臉皮..
public class Tomato extends Fruit
定義您ArrayList
爲
List<Fruit> fruit = new ArrayList<Fruit>();
和你crea一種方法..
public Fruit getNextFruit()
{
// First create a random number.
int randomNum = new Random().nextInt(5);
// Then this is where I stop coding.
}
你的任務是..
現在它的你來休息編碼。你將有一個隨機數字,以及幾種不同類型的Fruit
。你可以對此做各種各樣的事情,但是邏輯應該歸功於你。
+1番茄。 – aliteralmind
當然可以。如果您將ArrayList的泛型類型定義爲Fruit,那麼您可以像香蕉,橘子,蘋果,西番蓮果一樣傳遞任何東西。
這是可能的!以這三個類(當然有三個不同的.java文件)。
public class Fruit {}
public class Apple extends Fruit {}
public class Orange extends Fruit {}
現在將它們添加到列表中。
ArrayList<Fruit> basket = new ArrayList<>();
basket.add(new Orange());
basket.add(new Apple());
你可以這樣做沒有問題,因爲你創建的Fruit
列表。 Apple
是Fruit
,並且Orange
是Fruit
。 是一個關係很重要。
以下將不起作用,因爲Orange
不是Apple
。
ArrayList<Apple> apples = new ArrayList<>();
apples.add(new Orange()); // ERROR!
瑣事
在Java中的一切物體從Object類繼承。這樣就可以將任何東西添加到對象列表中。
ArrayList<Object> birthday = new ArrayList<>();
birthday.add(new Girlfriend());
birthday.add(new TV());
birthday.add(new Car());
如果我告訴你,你可以在'List
@LuiggiMendoza我不確定你想要做什麼。 – Rainbolt
出於測試目的,它不必位於三個不同的文件中。只需從所有類別中選出「公共」,並將該文件命名爲公共文件。 – aliteralmind
是的,如果你所有的物體從一個超類水果繼承:
List<Fruit> list = new ArrayList<>();
這個名單可以添加任何種類的水果,只要在擴展類的水果「。
你能告訴我們一些代碼嗎? –
測試一下,當你有特定的編程問題時回來,而不是*如果我可以這樣做會發生什麼,但我不想這樣做?*問題。 –