// 配置文件
com.demo.Apple
// 執(zhí)行類
public class Demo_Reflect {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new FileReader("config.properties"));
Class clazz = Class.forName(br.readLine());// 讀取配置文件中的包名稱和類名稱
Fruit f = (Fruit) clazz.newInstance();// 創(chuàng)建實例(蘋果) 父類引用子類對象
Juicer j = new Juicer();
j.run(f);
}
}
interface Fruit {
public void squeeze();// 榨汁
}
class Apple implements Fruit {
@Override
public void squeeze() {
System.out.println("榨出一杯蘋果汁");
}
}
class Orange implements Fruit {
@Override
public void squeeze() {
System.out.println("榨出一杯橘汁");
}
}
class Juicer {
public void run(Fruit f) {
f.squeeze();// 執(zhí)行榨汁
}
}