A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王廷顺 中级黑马   /  2013-6-24 14:13  /  1116 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王廷顺 于 2013-6-25 18:36 编辑

如下代码:
public class GenericDemo4 {
/**
  * @param args
  */
public static void main(String[] args) {
  // TODO Auto-generated method stub
  Demo<String> d = new Demo<String>();
  d.print(5);
  d.print("hehe");
}
}
class Demo<T>
{
public void show(T t)
{
  System.out.println("show:"+t);
}
public <Q> void print(Q q)
{
  System.out.println("print:"+q);
}
}
我的问题是: Demo<String> d = new Demo<String>();泛型已经先指定了String,为什么d.print(5)能编译通过而且还有执行结果呢。

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 神马都是浮云

查看全部评分

3 个回复

倒序浏览
因为你调用的是print方法,而不是show方法
回复 使用道具 举报
show方法有泛型限定 print方法没有
回复 使用道具 举报
和泛型没有直接关系,println方法有很多重写方法,可以接收各种类型的参数,字符串的,整型的,布尔型的都可以的,原因是println的方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马