java多态arraylist多态,add另一个arraylist多态,为什么还要new ArrayList
时间: 2023-08-13 13:06:17 浏览: 109
在Java中,多态允许我们使用父类的引用变量来引用子类的对象。当使用多态时,可以将子类对象赋值给父类引用变量。ArrayList是一个动态数组,它是Java集合框架中的一个类。当我们使用多态时,可以使用父类类型的ArrayList引用变量来引用子类类型的ArrayList对象。这样,我们可以通过父类类型的引用变量调用子类类型对象的方法。
然而,当我们使用多态时,我们只能访问父类引用变量所声明的方法和属性。如果子类有自己特有的方法和属性,在多态情况下是不能直接访问的。这时,我们就需要将父类引用变量转换为子类类型,以便访问子类特有的方法和属性。
在这种情况下,如果我们想要使用子类特有的方法和属性,我们需要创建一个新的ArrayList对象,并将父类引用变量强制类型转换为子类类型。这样,我们就能够使用子类特有的方法和属性了。这也是为什么需要使用`new ArrayList`的原因。
相关问题
java 多态 list
Java中的多态可以通过使用List来实现。List是Java集合框架中的一个接口,它允许我们将多个对象存储在一个有序的集合中。
使用多态,我们可以创建一个List对象,并将其指定为List的实现类,例如ArrayList或LinkedList。这样做的好处是,我们可以根据需要在不改变代码的情况下轻松地切换不同的List实现类。
下面是一个示例代码,展示了如何使用多态来创建和操作List对象:
```java
import java.util.List;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// 创建一个List对象,指定为ArrayList实现类
List<String> myList = new ArrayList<>();
// 添加元素到List中
myList.add("Apple");
myList.add("Banana");
myList.add("Orange");
// 遍历List并打印元素
for (String fruit : myList) {
System.out.println(fruit);
}
}
}
```
在上面的示例中,我们创建了一个List对象并将其指定为ArrayList实现类。然后,我们使用add()方法向List中添加了几个字符串元素。最后,我们使用for-each循环遍历List并打印每个元素。
通过使用多态,我们可以轻松地更改List的实现类,例如将ArrayList替换为LinkedList,而无需更改现有代码。
希望这个例子能帮助你理解如何在Java中使用多态来创建和操作List对象!如果你还有其他问题,请随时提问。
linkedList和ArrayList是list的运行时多态吗
不是。LinkedList和ArrayList是不同的实现方式,它们都实现了List接口。运行时多态是指在运行时根据对象的实际类型来调用方法。在这种情况下,对象的类型是已知的,因为它们通过构造函数进行了明确定义。因此,LinkedList和ArrayList不是List的运行时多态,而是两种不同的List实现方式。
阅读全文