在 Java 语言 中泛型不仅可以用在类上面,也可以使用在接口上面。它的声明格式与泛型类声明格式相似。
[访问权限] interface 接口名称<泛型标识>{
}
参数 | 说明 |
---|---|
访问权限 | 我们在包访问权限里面介绍的 public、protected、default 和 private 几个权限 |
interface | 声明接口的关键字 |
泛型标识 | 和泛型类里面的标识相似,可以任意字母 |
和泛型类定义相似,只是将类 class 关键字改成了 interface 关键字。
我们根据泛型语法定义一个泛型类
package com.haicoder.net.paradigm.inter;
public interface ParadigmInterface<T> {
public T gerValue();
}
我们定义实现类,泛型接口的实现类有两种方式
在实现类上面声明泛型类型
package com.haicoder.net.paradigm.inter;
public class ParadigmInterfaceImpl1<T> implements ParadigmInterface<T> {
@Override
public T gerValue() {
System.out.println("嗨,你好啊,嗨客网,我是第一种实现方式");
return null;
}
}
在实现类的时候指明接口的具体类型
package com.haicoder.net.paradigm.inter;
public class ParadigmInterfaceImpl2 implements ParadigmInterface<String> {
@Override
public String gerValue() {
return "嗨,你好啊,嗨客网,我是第二种实现方式";
}
}
声明一个测试调用类
package com.haicoder.net.paradigm.inter;
public class ParadigmInterfaceTest {
public static void main(String[] args) {
System.out.println("嗨客网(www.haicoder.net)");
ParadigmInterface<String> paradigmInterface1 = new ParadigmInterfaceImpl1<>();
paradigmInterface1.gerValue();
ParadigmInterface<String> paradigmInterface2 = new ParadigmInterfaceImpl2();
System.out.println(paradigmInterface2.gerValue());
System.out.println("结束");
}
}
运行结果如下:
在定义接口实现类的时候,可以声明为泛型类型的,也可以声明为具体类型。声明为泛型类型的时候,在定义具体对象的时候,需要声明具体对象。
泛型接口的声明和泛型类声明类似,它的实现类有两种方式,一种是将实现类定义为泛型,一种是实现类声明为具体类型。