ArrayBag 的概念

Concept of ArrayBag

我无法理解 class 幻灯片的一部分,上面写着:

在 ArrayBag 中存储项目:
我们将项目存储在 Object 类型的数组中。

public class ArrayBag implements Bag {
    private Object[] items; 
    private int numItems; 
....
}  

由于多态性的强大功能,这使我们能够在 items 数组中存储任何类型的对象:

ArrayBag bag = new ArrayBag(); 
bag.add("hello"); 
bag.add(new Double(3.1416)); 

A​​rrayBag 是特定类型的对象还是只是一个 Obj 变量名?
为什么我们需要将 3.1416 转换为 Double 并添加一个新的?
(我知道代码可能只是 bag.add(3.1416) 并且 Java 会为你自动装箱,但我无法理解 bag.add(new Double(3.1416) ).

Is ArrayBag a specific type of object or is it just a Obj variable name?

ArrayBag既不是特定类型的对象也不是对象变量,它实际上是Class.

Why do we need to cast 3.1416 as a Double and add a new?

不,当 AutoBoxing 出现时(Java 1.5 及更高版本),您无需显式转换 double 并将 double 转换为 Double即从原始到对象。

I'm having trouble understanding the meaning behind bag.add(new Double(3.1416)

bag其实是ArrayBag的一个实例,而add()是这个class中定义的一个方法,它接受一个Object类型的参数并可能将其添加到 items 数组中,它不过是 Object 的数组。