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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张雪萍 中级黑马   /  2013-4-2 12:40  /  1601 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张雪萍 于 2013-4-3 22:04 编辑

  1. interface Inter<T>
  2. {
  3.         void show(T t);
  4. }

  5. /*

  6. class InterImpl implements Inter<String>
  7. {
  8.         public void show(String t)
  9.         {
  10.                 System.out.println("show :"+t);
  11.         }
  12. }

  13. */

  14. class InterImpl<T> implements Inter<T>
  15. {
  16.         public void show(T t)
  17.         {
  18.                 System.out.println("show :"+t);
  19.         }
  20. }
  21. class GenericDemo8
  22. {
  23.         public static void main(String[] args)
  24.         {

  25.                 InterImpl<Integer> i = new InterImpl<Integer>();
  26.                 i.show(4);
  27.                 //InterImpl i = new InterImpl();
  28.                 //i.show("haha");
  29.         }
  30. }
复制代码
关于泛型接口,
这两个类有什么区别吗?
具体怎样运行?
尤其是子类继承父类时,父类的泛型对子类有什么影响?

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

7 个回复

倒序浏览
这两个类都实现了Inter接口
你实现接口的第一个类,是在接口上指定了泛型
类也就也应用跟接口相同的泛型
第二个实现接口的类,是在类上定义泛型
可以是任意类型
而第一个你接口定义了String  所以只能打印String类型的值
回复 使用道具 举报
类没有什么区别,只是在定义子类的时候一个已经明确了对象的类型,一个没有明确。
没有明确的类型如果是<T>会默认是Object类,如果是<T extends E>会默认为E,然后在在建立类的对象或者是定义子类的时候对这默认的类型进行修改。
其实JVM并不知道泛型,所有的泛型在编译阶段就已经被处理成了普通类和方法。
    处理方法很简单,我们叫做类型变量T的擦除(erased) 。
    无论我们如何定义一个泛型类型,相应的都会有一个原始类型被自动提供。原始类型的名字就是擦除类型参数的泛型类型的名字。
         如果泛型类型的类型变量没有限定(<T>) ,那么我们就用Object作为原始类型;
         如果有限定(<T extends XClass>),我们就XClass作为原始类型;
         如果有多个限定(<T extends XClass1&XClass2>),我们就用第一个边界的类型变量XClass1类作为原始类型;

子类继承的话,肯定默认是和父类的类型是一样的。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
用了泛型了, 那么整个类里都只能接收一个你指定类型  在集合中可以使用, 除此之外不建议这样使用,
回复 使用道具 举报
我手心里的宝 发表于 2013-4-2 12:53
这两个类都实现了Inter接口
你实现接口的第一个类,是在接口上指定了泛型
类也就也应用跟接口相同的泛型

谢啦哈。。。
回复 使用道具 举报
黑马朱超 发表于 2013-4-2 13:12
类没有什么区别,只是在定义子类的时候一个已经明确了对象的类型,一个没有明确。
没有明确的类型如果是会 ...

谢了哈。。。。
回复 使用道具 举报
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
回复 使用道具 举报
张雪萍 发表于 2013-4-3 08:35
谢了哈。。。。

u are welcome
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马