List list = new ArrayList();
list.add(0, "hello");
list.add(1, "world");
list.add(2, "javase");
Object object = list.get(2);
System.out.println(object); // android
// 结果为什么不是地址值?
List list = new ArrayList();
list.add(0, "hello");
list.add(1, "world");
list.add(2, "javase");
Object object = list.get(2);
System.out.println(object); // android
// 结果为什么不是地址值?
"javase"是一个String对象,String对象重写了toString()函数,所以执行的不是Object.toString,而是String.toString。
java的多态思想决定了,即使你用一个Object引用指向这个String变量,执行toString函数,调用的仍然是String.toString。