有人可以告诉集合是否利用多态性?

时间:2013-02-06 12:25:48

标签: java collections polymorphism

如果是,请让我知道集合如何利用多态概念

2 个答案:

答案 0 :(得分:4)

java.util.Collection是一个界面; java.util.List也是如此。所以,当你有

class X {
  List<String> list;
}

并在其他地方有一个方法

void readX(X x) {
  x.list.add("you");
}

您正在使用多态性原则,该原则将调用方法Collection#add的适当实现。

答案 1 :(得分:2)

集合确实是多态的:Java中的所有集合类都实现了一个或多个 interfaces ,如果你编程到集合的接口,就可以交换一个新的实现。

例如,如果您定义并使用

List<Integer> myList = new ArrayList<Integer>();

你可以用

替换它
List<Integer> myList = new LinkedList<Integer>();

并且其余代码不需要更改。当然,如果您尝试访问链接列表中间的元素,则会有时间问题。