今天在论坛里看到一个与java类型相关的题目,感觉很好!
public class Print_Test { public static void main(String[] args) { char c = (char) 2354; System.out.println(c); char c1 = (char) 2354; System.out.println(+c1); char c2 = (char) 2354; System.out.println(' '+c2); } }
这段程序输出结果为:
? 2354 2386
感觉不怎么清楚是怎么回事,看了论坛高手回答:
因为在java里面很重要的一个特性就是多态,这里System.out.pringln();虽然看上去都是调用同一个方法,但是在实际情况下,System.out.pringln()实现了方法的重载,于是就出现了:
System.out.pringln(c),调用的是System.out.pringln(char c);
System.out.println(+c1)和System.out.println(' '+c2),调用的是System.out.println(int x);
这样调用同一个方法,同一个变量值但不同类型,可能出现不同的值。因为它们实际调用的是不同的方法。