泛型类和泛型接口的学习

概念

泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。

泛型类

在类名的后面加上泛型申明代表该类中有一个泛型,<>中的大写字母代表类型可以使任意大写字母。泛型可以指代任意对象类型。我们亦可以有多个如:<T t,E,e>
例子:
泛型类:

package Java;

/**
 * 泛型类
 */
public class Plant<T,E> {
    T t;
    E e;

    public T getT() {
        return t;
    }

    public void setT(T t) {
        this.t = t;
    }

    public E getE() {
        return e;
    }

    public void setE(E e) {
        this.e = e;
    }
    void print(){
        System.out.println("t的类型为:"+t.getClass().getName());
        System.out.println("E的类型为:"+e.getClass().getName());
    }
}

测试类:

package Java;

public class Test {
    public static void main(String[] args) {
        Plant<Integer,String> plant =new Plant<>();
        plant.setT(1);
        plant.setE("hello");
        plant.print();
    }

}

输出结果:
在这里插入图片描述

泛型接口

泛型接口与泛型类定义方法类似,但是不可以有具体的实现。只能在器子类中重写接口方法,在重写是我们可以指定泛型类型,也可以不指定。
泛型接口定义:

package Java;

public interface Person<T> {
    T say();
}

不指定泛型类型:表示还没有传入泛型实参

package Java;

public class Student<T> implements Person<T>{
    @Override
    public T say() {
        return null;
    }
}

指定泛型类型:表示传入了泛型实参

package Java;

/**
 * 指定泛型类型
 */
public class Student1 implements Person<String> {

    @Override
    public String say() {
        String name = "张三";
        return name;
    }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值