本帖最后由 翼展哈哈 于 2013-12-9 16:57 编辑
首先提供一段非常简单的代码:
- int[] arr = new int[3]{1,2,3};
- System.out.println(arr);
复制代码
这段代码应该没什么问题的。我今儿在查看System类out字段的println方法时,发现println提供的重载方法有:
void println()
通过写入行分隔符字符串终止当前行。
void println(boolean x)
打印 boolean 值,然后终止行。
void println(char x)
打印字符,然后终止该行。
void println(char[] x)
打印字符数组,然后终止该行。
void println(double x)
打印 double,然后终止该行。
void println(float x)
打印 float,然后终止该行。
void println(int x)
打印整数,然后终止该行。
void println(long x)
打印 long,然后终止该行。
void println(Object x)
打印 Object,然后终止该行。
void println(String x)
打印 String,然后终止该行。
您看,上述那段简单代码,传给println方法的参数arr是int[]型的,但是所有的重载方法的形参中并没有int[]型!我想这应该涉及到多态的问题吧,很有可能代码中arr传递给了void println(Object x)方法,那这是不是说明int[]型是object的子类?请指教~~~ |