From af6120ea2f82e5beafb5331d28a2d50705b6d7ee Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Fri, 31 Jul 2026 10:20:56 +0800 Subject: [PATCH] =?UTF-8?q?s-day02-=E6=B3=9B=E5=9E=8B=E7=B1=BB=E7=9A=84?= =?UTF-8?q?=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- s-day02/src/com/inmind/generic04/Demo08.java | 32 +++++++++++++++++ s-day02/src/com/inmind/generic04/Factory.java | 36 +++++++++++++++++++ s-day02/src/com/inmind/generic04/Pad.java | 7 ++++ s-day02/src/com/inmind/generic04/Phone.java | 8 +++++ 4 files changed, 83 insertions(+) create mode 100644 s-day02/src/com/inmind/generic04/Demo08.java create mode 100644 s-day02/src/com/inmind/generic04/Factory.java create mode 100644 s-day02/src/com/inmind/generic04/Pad.java create mode 100644 s-day02/src/com/inmind/generic04/Phone.java diff --git a/s-day02/src/com/inmind/generic04/Demo08.java b/s-day02/src/com/inmind/generic04/Demo08.java new file mode 100644 index 0000000..7045233 --- /dev/null +++ b/s-day02/src/com/inmind/generic04/Demo08.java @@ -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 phoneFactory = new Factory<>(); + Phone fixedPhone = phoneFactory.fix(phone); + + //修平板就找平板工厂 + Factory padFactory = new Factory<>(); + Pad fixedPad = padFactory.fix(pad); + + + fixedPhone.call(); + fixedPad.playApp(); + } +} diff --git a/s-day02/src/com/inmind/generic04/Factory.java b/s-day02/src/com/inmind/generic04/Factory.java new file mode 100644 index 0000000..03fa36a --- /dev/null +++ b/s-day02/src/com/inmind/generic04/Factory.java @@ -0,0 +1,36 @@ +package com.inmind.generic04; +/* + 能不能在一个类中定义一个未知类型,接收的具体的是什么类型,就返回什么类型,这个数据类型要动态, + 并省略掉强转操作,也避免类型转换异常??? + 可以,使用泛型类,在类名加上<任意大写字母> + + 泛型类:就是在类中定义了一个未知的类型(动态的类型). + + 泛型类的T类型何时确定? + 创建对象时才确定 + */ +public class Factory { + + //多态的写法 + /*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; + }*/ +} diff --git a/s-day02/src/com/inmind/generic04/Pad.java b/s-day02/src/com/inmind/generic04/Pad.java new file mode 100644 index 0000000..bd1aa60 --- /dev/null +++ b/s-day02/src/com/inmind/generic04/Pad.java @@ -0,0 +1,7 @@ +package com.inmind.generic04; + +public class Pad { + public void playApp(){ + System.out.println("看抖音"); + } +} diff --git a/s-day02/src/com/inmind/generic04/Phone.java b/s-day02/src/com/inmind/generic04/Phone.java new file mode 100644 index 0000000..cd0fe94 --- /dev/null +++ b/s-day02/src/com/inmind/generic04/Phone.java @@ -0,0 +1,8 @@ +package com.inmind.generic04; + +public class Phone { + + public void call() { + System.out.println("打电话"); + } +}