package com.tain_8_23;
import java.io.BufferedReader;
import java.io.FileReader;
/*
* 榨汁机(Juicer)榨汁的案例
* 分别有水果(Fruit) 苹果(Apple) 香蕉(Banana) 桔子(Orange) 西瓜汁(Watermelon) 榨汁(squeeze)
*
*/
public class Demo_reflect {
public static void main(String[] args) throws Exception {
/*
Juicer juicer = new Juicer(); //创建榨汁机对象
juicer.run(new Apple()); //向榨汁机中放入苹果
juicer.run(new Orange());
*/
//用反射和配置文件
BufferedReader br = new BufferedReader(new FileReader("config.properties"));
Class clazz = Class.forName(br.readLine());
Fruit f = (Fruit) clazz.newInstance();
Juicer juicer = new Juicer();
juicer.run(f);
}
}
interface Fruit{
public void squeeze();
}
class Apple implements Fruit{
public void squeeze() {
System.out.println("榨出一杯苹果汁儿");
}
}
class Orange implements Fruit{
public void squeeze() {
System.out.println("榨出一杯桔子汁儿");
}
}
class Banana implements Fruit{
public void squeeze() {
System.out.println("榨出一杯香蕉汁儿");
}
}
class Watermelon implements Fruit{
@Override
public void squeeze() {
System.out.println("榨出一杯西瓜汁儿");
}
}
class Juicer{
/*
public void run(Apple a) {
a.squeeze();
}
*/
public void run(Fruit f) {
f.squeeze();
}
}
//配置文件config.properties
内容:com.tain_8_23.Watermelon
反射(榨汁机例子)
最新推荐文章于 2022-11-21 21:07:02 发布