s-day02-泛型类的使用

This commit is contained in:
2026-07-31 10:20:56 +08:00
parent 97d9194f8d
commit af6120ea2f
4 changed files with 83 additions and 0 deletions
@@ -0,0 +1,32 @@
package com.inmind.generic04;
public class Demo08 {
public static void main(String[] args) {
//买了手机和平板
Phone phone = new Phone();
Pad pad = new Pad();
phone.call();
pad.playApp();
/*//手机坏了,平板坏了,找售后工程维修
Factory factory = new Factory();
//调用工厂的维修方法
phone = factory.fixPhone(phone);
pad = factory.fixPad(pad);*/
//不使用泛型,使用多态的方法
/*Factory factory = new Factory<>();
Object o = factory.fixObj(phone);
Pad o1 = (Pad) o;
o1.playApp();*/
//使用泛型的方式
Factory<Phone> phoneFactory = new Factory<>();
Phone fixedPhone = phoneFactory.fix(phone);
//修平板就找平板工厂
Factory<Pad> padFactory = new Factory<>();
Pad fixedPad = padFactory.fix(pad);
fixedPhone.call();
fixedPad.playApp();
}
}
@@ -0,0 +1,36 @@
package com.inmind.generic04;
/*
能不能在一个类中定义一个未知类型,接收的具体的是什么类型,就返回什么类型,这个数据类型要动态,
并省略掉强转操作,也避免类型转换异常???
可以,使用泛型类,在类名加上<任意大写字母>
泛型类:就是在类中定义了一个未知的类型(动态的类型).
泛型类的T类型何时确定?
创建对象时才确定
*/
public class Factory<T> {
//多态的写法
/*public Object fixObj(Object o) {
System.out.println("对象已修好");
return o;
}*/
//使用T类型
public T fix(T t) {
System.out.println("对象T已修好");
return t;
}
/*//维修手机方法
public Phone fixPhone(Phone phone) {
System.out.println("手机修好了");
return phone;
}
//维修pad方法
public Pad fixPad(Pad pad) {
System.out.println("平板修好了");
return pad;
}*/
}
@@ -0,0 +1,7 @@
package com.inmind.generic04;
public class Pad {
public void playApp(){
System.out.println("看抖音");
}
}
@@ -0,0 +1,8 @@
package com.inmind.generic04;
public class Phone {
public void call() {
System.out.println("打电话");
}
}