泛型(三)之泛型接口与方法

一、泛型接口:泛型在接口上声明
在接口上必须定义其相应子类:
形式一:在子类继续设置泛型

//设置泛型接口,泛型可以设置多个,例,IMessage<E,T>,使用逗号分隔即可
interface IMessage<E> {
    public void print(E t);
}
//子类也继续使用泛型,并且与父接口使用和子类同样的泛型标记
class MessageImp<E> implements IMessage<E>{

    @Override
    public void print(E t) {
        // TODO Auto-generated method stub

    }

}

形式二、在子类不设置泛型,而为父接口明确定义一个泛型类型,建议使用这种方法

interface IMessage<E> {
    public void print(E t);
}
//父类明确设置泛型类型
class MessageImp implements IMessage<String>{

    @Override
    public void print(String t) {
        System.out.println(t);
    }
}

public class Main {
    public static void main(String[] args) {
        //此时创建对象的时候,不再需要设置泛型,子类已经明确了类型为String
        MessageImp mes = new MessageImp();
        mes.print("11");
    }
}

二、泛型方法:泛型方法不一定非要定义在支持泛型的类里面

public class Main {
    public static void main(String[] args) {
        String str = fun("hello");
        System.out.println(str);
    }
    //T的类型由传入的参数决定
    public static <T>T fun(T t) { 
        return t;
    }
}

总结:
1、泛型解决的是向下转型所带来的安全隐患,其核心的组成就是在声明类或者接口的时候不设置参数或属性的类型
2、“?”可以接收任意的泛型类型,只能够取出,但是不能修改

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值