【JAVASE】对于泛型接口的基础语法和注意事项(含注解)

package Generics.CustomGenerics;

/**
 * @author 小王宝友
 * @version 3.89
 * 自定义泛型接口
 * 基本语法
 * interface 接口名 <T,R,V,.....>{
 *
 * }
 *
 * 注意事项:
 *      1、接口中,静态成员也不能使用泛型,与类中不能使用泛型原因一致
 *      2、泛型接口的类型,在继承接口或是实现接口时确定
 *      3、没有指定泛型时,系统默认为Object类型
 */
public class CustomizeInterfaceGenerics {
    public static void main(String[] args) {

    }
}
interface IA extends IUsb<String,Double>{
    /**
     * 当IA继承了IUsb接口时,确定了泛型U,R的类型
     * 当有类继承IA接口时实现方法时会将IUsb中的U,R自动的替换成IA所指定的类型
     * 即,String和Double
     */
}
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) {

    }
}
//在实现接口时,也可以直接设定泛型接口的类型
//U->Integer,R->Float
//当实现IUsb接口的方法时,会使用Integer替换U,使用Float替换R
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) {

    }
}

interface IUsb<U,R>{
    //接口中的所有成员都是具有静态性质的,所以不能使用泛型修饰成员
    R get(U u);
    void hi(R r);
    void run(R r1,R r2,U u1,U u2);
    //在默认方法中也可以使用泛型
    default R method(U u){
        return null;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值