java泛型接口详解

2014-11-24 07:51:16 · 作者: · 浏览: 0
/*
 * 泛型接口
 */
interface Tool
  
    {
	public void show(T t);
	
	//泛型方法
	public 
   
     void print(E e); } /* * 这种方式适合实现接口的时候就知道类里的泛型是什么 */ class ToolImpl implements Tool
    
      { @Override public void show(String t) { System.out.println("show:" + t); } @Override public 
     
       void print(E e) { System.out.println("print:" + e); } } /* * 这种方式不好! */ class Tool2Impl implements Tool { @Override public void show(Object t) { System.out.println("show obj" + t); } @Override public void print(Object e) { System.out.println("show obj" + e); } } /* * 这种方式适合使用的时候指定泛型 * 在继承接口的时候不用指定泛型 * 注意的是
      
       也可以写成别的比如
       
         * 写成
        
         的话,类上的
         
          和print方法 * 上的
          
           也不是一个类型 */ class Tool3Impl
           
             implements Tool
            
              { @Override public void show(T t) { System.out.println("show=" + t); } @Override public 
             
               void print(E e) { System.out.println("print=" + e); } } /* * 这个写法中show方法和print方法用的泛型也不是一个 * 类上的
              
               和print方法上的
               
                不是一个类型!!! */ class Tool4Impl
                
                  implements Tool
                 
                   { @Override public void show(E t) { System.out.println("show-" + t); } @Override public 
                  
                    void print(E e) { System.out.println("print-" + e); } } /* * 错误! * class Tool5Impl
                   
                     implements Tool
                    
                      { * * } */ /* * 正确,但是这个泛型上的String没意义,和Tool3Impl写法没区别 * class Tool5Impl
                     
implements Tool { * * } */ /* * 错误1 * class Tool5Impl implements Tool { * * } */ /* * 正确,但是这个泛型上的String|T没意义,和Tool4Impl写法没区别 * class Tool6Impl implements Tool { * * } */ public class GenericDemo { public static void main(String[] args) { ToolImpl ti = new ToolImpl(); ti.show("nihao"); ti.print(6); Tool3Impl t3i = new Tool3Impl (); t3i.show("haha"); t3i.print(6); Tool4Impl t4i = new Tool4Impl (); t4i.show("hehe"); t4i.print(6); } }