s-day02-泛型方法的使用
This commit is contained in:
@@ -1,32 +0,0 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
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;
|
||||
}*/
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package com.inmind.generic04;
|
||||
|
||||
public class Pad {
|
||||
public void playApp(){
|
||||
System.out.println("看抖音");
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
package com.inmind.generic04;
|
||||
|
||||
public class Phone {
|
||||
|
||||
public void call() {
|
||||
System.out.println("打电话");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user