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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qiucheng1990 中级黑马   /  2012-11-1 20:18  /  1356 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

接口使用泛型定义的时候,子类实现这个接口时如果也要定义泛型类,这两个泛型必须一致吗

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
子类实现这个接口时它的类型参数必须和要实现的接口中的声明完全一样
通常,如果一个类实现了一个泛型接口,则此类也是泛型类。否则,它无法接受传递给接口的类型参数。
class MyClass<这里必须和接口的类型一样>implements MinMax<T>

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
李计伟 发表于 2012-11-1 21:22
子类实现这个接口时它的类型参数必须和要实现的接口中的声明完全一样
通常,如果一个类实现了一个泛型接口 ...

哦哦,学习了!感谢你啊
回复 使用道具 举报
我不赞同坐在沙发上的那个同学的观点,啥也不说,直接下代码:
首先是一个接口并使用型

  1. <P>public interface TestDao<T extends Serializable> {
  2. public Class<T> sayMyT();</P>
  3. <P>}</P>
复制代码
然后一个类承接此接口,指定实现接口时所用的类型为String,并且在产生一个 TestDaoAbs时,我注入了一个User对象类型

  1. <P>public class TestDaoAbs<E> implements TestDao<String> {</P>
  2. <P> @Override
  3. public Class<String> sayMyT() {
  4.   // TODO Auto-generated method stub
  5.   return String.class;
  6. }</P>
  7. <P> public static void main(String[] args) {
  8.   Class c = new TestDaoAbs<User>().sayMyT();
  9.   System.out.println(c.toString());
  10. }</P>
  11. <P>}</P>
复制代码
本人拙见,如有错误请指正,再贴一个简单易明的:

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
沙发有误。
  1. interface Inter<T>{
  2.         void show(T t);
  3. }

  4. //子类中定义未知数据类型的泛型
  5. /*class InterImpl<T> implements Inter<T>{
  6.         public void show(T t)
  7.         {
  8.                 System.out.println("show:"+ t);
  9.         }
  10. }*/


  11. //子类中定义的已知数据类型的泛型
  12. class InterImpl implements Inter<String>{
  13.         public void show(String s)
  14.         {
  15.                 System.out.println("show:"+s);
  16.         }
  17. }       
  18. public class GenericDemo4 {

  19.         /**
  20.          * @param args
  21.          */
  22.         public static void main(String[] args) {
  23.                 // TODO Auto-generated method stub
  24.                 InterImpl  i = new InterImpl ();
  25.                 i.show("haha");
  26.         }

  27. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 很给力!

查看全部评分

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