第八节第四部分:认识泛型、泛型类、泛型接口

认识泛型

泛型类介绍

泛型接口介绍

代码

代码一:认识泛型

java 复制代码
package com.generics;

import java.util.ArrayList;

public class Test {
    public static void main(String[] args) {
        //认识泛型
        ArrayList list = new ArrayList();
        list.add("JAVA1");
        list.add("JAVA2");
        list.add("JAVA3");
        list.add(new Cat());

        for (int i = 0; i < list.size(); i++) {
            String s = (String) list.get(i);
            //System.out.println(s);//依然会报错,因为Cat类不能转成String类
        }
        System.out.println("==========================");
        ArrayList<String> list1 = new ArrayList();//从JDK1.7开始等号后面不用也加<String>
        list1.add("JAVA1");
        list1.add("JAVA2");
        list1.add("JAVA3");
        for (int i = 0; i < list1.size(); i++) {
           String e = list1.get(i);
            System.out.println(e);
        }
    }

}
class Cat{}

代码二:认识泛型类

MyArrayList类(泛型类)

java 复制代码
package com.generics_class;
//泛型类
public class MyArrayList<E> {
    private Object[] arr = new Object[10];
    private int size = 0;//记录当前位置的

    public boolean add(E e) {
        arr[size++] = e;
        return true;
    }

    public E get(int index) {
        return (E) arr[index];
    }
}

MyClass2类(泛型类)

java 复制代码
package com.generics_class;

public class MyClass2<E,T> {
    public void get(E e,T t){

    }
}

MyClass3类(泛型类)

java 复制代码
package com.generics_class;

public class Myclass3<E extends Animal> {

}

Animal类(父类)

java 复制代码
package com.generics_class;

public class Animal {
}

Cat(子类继承Animal)

java 复制代码
package com.generics_class;

public class Cat extends Animal {
}

Test类(主程序类)

java 复制代码
package com.generics_class;

public class Test {
    //掌握泛型类的定义和使用
    public static void main(String[] args) {
        MyArrayList<String> list = new MyArrayList<>();
        list.add("JAVA1");
        list.add("JAVA2");
        list.add("JAVA3");

        String s = list.get(1);
        System.out.println(s);


        MyClass2<String,String> c2 = new MyClass2<>();

        Myclass3<Cat> c3 = new Myclass3<>();


    }

}

代码三:认识泛型接口

Data(泛型接口)

java 复制代码
package com.generics_interface;

import java.util.ArrayList;

public interface Data<T> {
    void add(T t);
    ArrayList<T> getByName(String name);
}

Student(学生类)

java 复制代码
package com.generics_interface;

public class Student {
}

Teacher(老师类)

java 复制代码
package com.generics_interface;

public class Teacher {
}

StudentData (实现Data接口的类)

java 复制代码
package com.generics_interface;

import java.util.ArrayList;

public class StudentData implements Data<Student>{
    @Override
    public void add(Student student) {

    }

    @Override
    public ArrayList<Student> getByName(String name) {
        return null;
    }
}

StudentData (实现Data接口的类)

java 复制代码
package com.generics_interface;

import java.util.ArrayList;

public class TeacherData implements Data<Teacher>{
    @Override
    public void add(Teacher teacher) {

    }

    @Override
    public ArrayList<Teacher> getByName(String name) {
        return null;
    }
}

Test类 (介绍此次课程目标)

java 复制代码
package com.generics_interface;

public class Test {
    public static void main(String[] args) {
        //目标:掌握泛型接口的定义和使用
        //场景:系统需要处理老师和学生的数据,需要提供两个功能,根据名称查询数据

    }
}
相关推荐
中二骚年14 小时前
Windows 安全中心 / 防火墙故障,calc和Microsoft Store,终端(管理员)无法正常打开。 原因 + 修复方案
windows·安全·microsoft
万联WANFLOW15 小时前
CVE-2026-98432 等漏洞自查:AI 查出的 Linux、Windows 漏洞,运维怎么确认受不受影响
linux·运维·windows·网络安全
AlanAshley17 小时前
Windows 中导致延迟的软硬件及协议比重
windows
yuezhilangniao17 小时前
win10中文 以及 PowerShell 开发日常
windows·powershell
共享家95271 天前
408 操作系统第一章
服务器·数据库·windows
Sakura_j_h_1 天前
GitHub Actions 打包 Windows exe:中文编码与产物上传
windows·ci/cd·打包发布·github·pyinstaller·github actions
xixiaoyunya2 天前
搭一个浏览器即用的二进制文件分发点:目录规范与权限边界实践
网络·windows
麻瓜code2 天前
Spring AI 全模块 API 字典一览(1.1.0 版)
人工智能·windows·spring
zrc0070072 天前
steam无法登录 steam错误 登录时出现错误。请稍后再试。解决办法 steam无法登录解决办法 湖南地区steam DNS问题解决办法
windows·经验分享·游戏·缓存·游戏程序·创业创新·玩游戏
BK贝壳2 天前
布尔队列 BHA_Queue:入队出队均摊 O(1);附 BHA_Dict
windows