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

认识泛型

泛型类介绍

泛型接口介绍

代码

代码一:认识泛型

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) {
        //目标:掌握泛型接口的定义和使用
        //场景:系统需要处理老师和学生的数据,需要提供两个功能,根据名称查询数据

    }
}
相关推荐
jack186893 小时前
Devin 智能软件工程师实战应用指南
windows
Hello_Pyhx6 小时前
WinDirStat 2.9.3:从目录扫描到可复查的占用报表
windows·mac·垃圾清理
jun_bai7 小时前
使用Aspose实现word文档合并,内容替换
windows·c#·word
mklpo1478 小时前
为不支持sse4.2命令集的老旧设备制作Win11 26H2系统镜像,2026-10-11。
运维·windows·python
Vex2une9 小时前
PowerShell 发展史:从命令行外壳到跨平台自动化引擎
windows·自动化·azure·powershell·vs code·脚本语言·dsc
富洋金锐10 小时前
windows-winmtr与pathping命令-网络丢包排查
网络·windows
xuxigifxfh10 小时前
牛客:BISHI2 【模板】栈的操作
java·开发语言·windows·算法
imperialeast1 天前
WinAXP 2.4.0.828正式版
windows
周小董1 天前
[1369]Windows上安装PostgreSQL
数据库·windows·postgresql
doujiaozh1 天前
Win7 复活记:用 3 个补丁让 13 年前的老电脑跑通 Kimi API
windows