所以我有点明白如何对象面向的作品,但我想知道,如果你能做到这一点: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<>();
这个名单可以添加任何种类的水果,只要在扩展类的水果“。
你能告诉我们一些代码吗? –
测试一下,当你有特定的编程问题时回来,而不是*如果我可以这样做会发生什么,但我不想这样做?*问题。 –