泛型接口
泛型接口定义:
package com.tiedandan.集合.泛型.泛型接口;
/**
* @张铁蛋
*
* 泛型接口
* 语法:接口名<T>
* 泛型接口不能创建泛型静态常量
*/
public interface GenericInterface<T> {
String name = "张铁蛋";
T server(T t);
}
泛型接口的实现有两种情况
第一种情况:
package com.tiedandan.集合.泛型.泛型接口;
/**
* 泛型接口的实现类。
* 泛型接口的实现类在实现泛型接口时可以定义泛型类T的类型,也可以不定义泛型类T的类型
* 第一种情况:泛型接口的实现类在实现接口时就要定义泛型类T的类型、
* 这里定义泛型类T的类型为String类型。
* 然后重写泛型接口里的方法,方法返回值类型同样需要改成和String类型一样。
*
*/
public class GenericInterfaceImpl implements GenericInterface<String>{
第二种情况:
package com.tiedandan.集合.泛型.泛型接口;
/**
* 第二种情况:当实现类并没有定义泛型接口的类型时,可以把实现类改成泛型类。
* 泛型类的类型在泛型类创建对象时定义,然后会自动向上定义泛型接口的类型。
* @param <T>
*/
public class GenericInterfaceImpl2<T> implements GenericInterface<T>{
测试类:
package com.tiedandan.集合.泛型.泛型接口;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
public class TestGenericInterface {
public static void main(String[] args) {
GenericInterfaceImpl gifi1 = new GenericInterfaceImpl();
System.out.println(gifi1.server("张铁蛋"));
GenericInterfaceImpl2<Integer> gifi2 = new GenericInterfaceImpl2<Integer>();
System.out.println(gifi2.server(100));
}
}
运行结果:
张铁蛋