1,首先明确 public T getNum(T t) 这个不是重写
当T为Character对象时,会发生错误的重载形式
当T为Character之外的对象时,正常运行
2,在高新技术中,老师有讲到用到泛型的时候1.5版本 和1.4版本 的兼容性
B b = new B<Character>();这么写并不是指定了B中的T一定为Character对象,
只是说明了T可以为Character对象,同时也可以存入其他对象。
所以 写b.getNum(true)等等不是字符对象的时候也是正确的
只是,如果存入参数是字符对象的话,会优先使用明确了参数类型的方法(这个是我推测出来的结果)
B<Character> b = new B<Character> 这个表示只能存入字符对象,这个时候就会报重载错误,编译不通过
明确了上面两点,就清楚原因了 |