package com.customgeneric;
public class CustomInterfaceGeneric {
public static void main(String[] args) {
}
}
/*
* 泛型接口使用说明:
* 接口中,静态成员不能使用泛型
* 泛型接口的类型,在继承接口或者实现接口时确定
*
* */
//在继承接口 指定泛型接口的类型
interface IA extends IUsb<String ,Double>{
}
//IA接口继承了接口IUsb(则指定了U为String类型,R为Double类型),故class AA 要实现IUsb接口中的所有方法
class AA implements IA{
@Override
public Double get(String s) {
return null;
}
@Override
public void hi(Double aDouble) {
}
@Override
public void run(Double r1, Double r2, String u1, String u2) {
}
@Override
public Double method(String s) {
return IA.super.method(s);
}
}
//实现接口时,直接指定泛型接口的类型
class BB implements IUsb<Integer,Float>{
@Override
public Float get(Integer integer) {
return null;
}
@Override
public void hi(Float aFloat) {
}
@Override
public void run(Float r1, Float r2, Integer u1, Integer u2) {
}
}
//没有指定类型,默认为Object
//即使不指定,最好写成 class CC implementsIUsb<Object,Object>{...}
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) {
}
}
interface IUsb<U,R>{
//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;
}
}
CustomInterfaceGeneric
最新推荐文章于 2024-09-01 15:30:33 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)