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

认识泛型

泛型类介绍

泛型接口介绍

代码

代码一:认识泛型

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

    }
}
相关推荐
vortex51 小时前
AD渗透中服务账号相关攻击手法总结(Kerberoasting、委派)
windows·网络安全·渗透测试·ad
一点都不方女士8 小时前
《无畏契约》游戏报错“缺少DirectX”?5种解决方案(附DirectX修复工具)
windows·游戏·microsoft·动态链接库·directx·运行库
0wioiw09 小时前
Python基础(①⑧Queue)
windows·python
寒水馨10 小时前
Windows 11 手动下载安装配置 uv、配置国内源
windows·python·国内源·uv·windows11
Mintind10 小时前
windows找不到gpedit.msc(本地组策略编辑器)
windows
love530love21 小时前
【保姆级教程】阿里 Wan2.1-T2V-14B 模型本地部署全流程:从环境配置到视频生成(附避坑指南)
人工智能·windows·python·开源·大模型·github·音视频
Chukai1231 天前
Windows 和 Linux 系统下修改防火墙机制开放端口
linux·运维·windows
IT小农工1 天前
Windows 文件资源管理器无法预览文件内容word、ppt、excel、pdf
windows·word·powerpoint
要记得喝水1 天前
C#某公司面试题(含题目和解析)--1
开发语言·windows·面试·c#·.net