今天遇到了一个问题,以下是程序
import java.util.*;
public class Test{
public static void main(String[] args){
Collection c=new ArrayList();
c.add("hello");
c.add(new Integer(100));
System.out.println(c.size());
System.out.println(c);
}
}
调试输出的结果是
2
[hello, 100]
第一个输出结果我明白是什么意思,然而第二个输出结果是怎样来的呢?在collection接口中并没有toString()方法,而它的父类object的toSring()方法也不是输出出这一个结果,那么我想问一下这个c是如何转换成字符串的呢,它的内部是怎么样的一个调用过程呢?
import java.util.*;
public class Test{
public static void main(String[] args){
Collection c=new ArrayList();
c.add("hello");
c.add(new Integer(100));
System.out.println(c.size());
System.out.println(c);
}
}
调试输出的结果是
2
[hello, 100]
第一个输出结果我明白是什么意思,然而第二个输出结果是怎样来的呢?在collection接口中并没有toString()方法,而它的父类object的toSring()方法也不是输出出这一个结果,那么我想问一下这个c是如何转换成字符串的呢,它的内部是怎么样的一个调用过程呢?
这个时候调用的是 ArrayList
自己都知道寫成Collection c=new ArrayList();
應該知道c本質是一個ArrayList,只是它外表是Collection而已
多看API