泛型

什么是泛型?

< E >:参数化类型,定义类的时候不确定类型,使用类时才确定类型

泛型类:泛型定义在类上面

public class Car <E> {
    private E content; // 表示装的内容

    public void setContent(E content) {
        this.content = content;
    }

    public E getContent() {
        return content;
    }
    public static <T> void show(T msg) {
        System.out.println("msg = " + msg);
    }
}

小结:

如何使用泛型类?
Car c2 = new Car<>();
类名<类型> 变量名 = new 类名<类型>();

泛型类的缺点:
泛型类在创建对象时,指定为什么类型就只能使用这种类型

泛型方法:泛型定义在方法上

public static <T> void show(T msg) {
         System.out.println("msg = " + msg);
 }

小结:

1.泛型方法的格式?
    修饰符 <T> 返回值类型 方法名(T msg) {
    }

    和普通方法2点区别:
        1.返回值类型前面添加<T>
        2.参数列表中的类型变成T

2.泛型方法的好处?
    可以传入任意类型

泛型接口:就是泛型定义在接口上

public class Demo04 {
    public static void main(String[] args) {
        // 1.定义实现类指定泛型,创建对象时就不需要指定类型
        Student s = new Student();
        s.show("爽");

        // 2.定义类时沿用泛型,创建对象时就需要指定类型
        Teacher<String> t = new Teacher<>();
        t.show("abc");

        Teacher<Integer> t2 = new Teacher<>();
        t2.show(123);
    }
}

class Teacher <E> implements Swimmable <E> {
    @Override
    public void show(E msg) {
        System.out.println("老师游泳时说: " + msg);
    }
}

class Student implements Swimmable <String> {
    @Override
    public void show(String msg) {
        System.out.println("学生游泳时说: " + msg);
    }
}

interface Swimmable <E> {
    public abstract void show(E msg);
}

小结

1.泛型接口的格式?
interface 接口名 {
}

2.泛型接口的使用?
1).定义实现类指定泛型,创建对象时就不需要指定类型
2).定义类时沿用泛型,创建对象时就需要指定类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值