基本语法:
interface 接口名
{ }
注意细节:
- 接口中,静态成员也不能使用泛型(这个和泛型类规定一样)
- 泛型接口的类型,在继承接口或者实现接口时确定
- 没有指定类型,默认为Object ```java package test;
public class Main { public static void main(String[] args) {
}
}
/**
- 泛型接口使用的说明
- 接口中,静态成员也不能使用泛型
- 泛型接口的类型, 在继承接口或者实现接口时确定
- 没有指定类型,默认为Object */
//在继承接口 指定泛型接口的类型
interface IA extends IUsb
} //当我们去实现IA接口时,因为IA在继承IUsu 接口时,指定了U 为String R为Double //,在实现IUsu接口的方法时,使用String替换U, 是Double替换R class AA implements IA {
@Overridepublic Double get(String s) {return null;}@Overridepublic void hi(Double aDouble) {}@Overridepublic void run(Double r1, Double r2, String u1, String u2) {}
}
//实现接口时,直接指定泛型接口的类型
//给U 指定Integer 给 R 指定了 Float
//所以,当我们实现IUsb方法时,会使用Integer替换U, 使用Float替换R
class BB implements IUsb
@Overridepublic Float get(Integer integer) {return null;}@Overridepublic void hi(Float aFloat) {}@Overridepublic void run(Float r1, Float r2, Integer u1, Integer u2) {}
} //没有指定类型,默认为Object //建议直接写成 IUsb
}
}
interface IUsb {
int n = 10;//1. 接口中,静态成员也不能使用泛型//U name; //报错!!!//普通方法中,可以使用接口泛型R get(U u);void hi(R r);void run(R r1, R r2, U u1, U u2);//在jdk8 中,可以在接口中,使用默认方法, 也是可以使用泛型default R method(U u) {return null;}
} ```
