基本语法:

    interface 接口名{

    }

    注意细节:

    1. 接口中,静态成员也不能使用泛型(这个和泛型类规定一样)
    2. 泛型接口的类型,在继承接口或者实现接口时确定
    3. 没有指定类型,默认为Object ```java package test;

    public class Main { public static void main(String[] args) {

    1. }

    }

    /**

    • 泛型接口使用的说明
      1. 接口中,静态成员也不能使用泛型
      1. 泛型接口的类型, 在继承接口或者实现接口时确定
      1. 没有指定类型,默认为Object */

    //在继承接口 指定泛型接口的类型 interface IA extends IUsb {

    } //当我们去实现IA接口时,因为IA在继承IUsu 接口时,指定了U 为String R为Double //,在实现IUsu接口的方法时,使用String替换U, 是Double替换R class AA implements IA {

    1. @Override
    2. public Double get(String s) {
    3. return null;
    4. }
    5. @Override
    6. public void hi(Double aDouble) {
    7. }
    8. @Override
    9. public void run(Double r1, Double r2, String u1, String u2) {
    10. }

    }

    //实现接口时,直接指定泛型接口的类型 //给U 指定Integer 给 R 指定了 Float //所以,当我们实现IUsb方法时,会使用Integer替换U, 使用Float替换R class BB implements IUsb {

    1. @Override
    2. public Float get(Integer integer) {
    3. return null;
    4. }
    5. @Override
    6. public void hi(Float aFloat) {
    7. }
    8. @Override
    9. public void run(Float r1, Float r2, Integer u1, Integer u2) {
    10. }

    } //没有指定类型,默认为Object //建议直接写成 IUsb class CC implements IUsb { //等价 class CC implements IUsb { @Override public Object get(Object o) { return null; } @Override public void hi(Object o) { } @Override public void run(Object r1, Object r2, Object u1, Object u2) {

    1. }

    }

    interface IUsb {

    1. int n = 10;
    2. //1. 接口中,静态成员也不能使用泛型
    3. //U name; //报错!!!
    4. //普通方法中,可以使用接口泛型
    5. R get(U u);
    6. void hi(R r);
    7. void run(R r1, R r2, U u1, U u2);
    8. //在jdk8 中,可以在接口中,使用默认方法, 也是可以使用泛型
    9. default R method(U u) {
    10. return null;
    11. }

    } ```