进阶day02-泛型类的使用

This commit is contained in:
2026-01-31 11:59:07 +08:00
parent a4b6ef45f7
commit 89464bb2d8
5 changed files with 71 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
package com.inmind.generic04;
/*
能不能在一个类中定义一个未知类型,接收的具体的是什么类型,就返回什么类型,这个数据类型要动态,并省略掉强转操作,也避免类型转换异常???
可以,使用泛型类,在类名加上<任意大写字母>
泛型类的格式:
public class 类名<大写字母>
泛型类:就是在类中定义了一个未知的类型.
泛型类的A类型何时确定
创建对象时才确定
如果要定义多个未知类型,直接写在<ABC>即可
*/
//我现在定义了一个A类型的工厂
//public class Factory<A,B,C> {
public class Factory<A> {
//修理指定类型的产品,修理什么,就返回什么
public A fix(A a) {
System.out.println("东西修好了");
return a;
}
//已经学习过多态,如果没有泛型,可以使用多态来动态接收不同的类型
/*public Object fixO(Object o) {
System.out.println("o-东西修好了");
return o;
}*/
}

View File

@@ -0,0 +1,22 @@
package com.inmind.generic04;
public class GenericClassDemo05 {
public static void main(String[] args) {
//买了一个手机
Phone phone = new Phone();
phone.call();
//买了一个平板
Pad pad = new Pad();
pad.play();
System.out.println("------------");
//手机和平板坏了,找专门的厂家去修理
Factory<Phone> phoneFactory = new Factory<>();
Phone fixedPhone = phoneFactory.fix(phone);
fixedPhone.call();
Factory<Pad> padFactory = new Factory<>();
Pad fixedPad = padFactory.fix(pad);
fixedPad.play();
}
}

View File

@@ -18,6 +18,8 @@ import java.util.ArrayList;
泛型的好处:
1.使用泛型,可以省略强转操作
2.将运行时期的异常提前到了编译时期,为了确保数据操作的安全性
注意java中的泛型是伪泛型它只有在编译时期有效运行时期就没有泛型了
*/
public class GenericDemo04 {
public static void main(String[] args) {

View File

@@ -0,0 +1,7 @@
package com.inmind.generic04;
public class Pad {
public void play() {
System.out.println("在平板上玩游戏");
}
}

View File

@@ -0,0 +1,8 @@
package com.inmind.generic04;
public class Phone {
public void call(){
System.out.println("手机在打电话");
}
}