config.properties配置文件:
调用代码:
package com.heima.bean;
import java.io.BufferedReader;
import java.io.FileReader;
public class Demo2_Reflect {
public static void main(String[] args) throws Exception {
// 没有反射,只有多态
// Juicer j=new Juicer();
// j.run(new Apple());// Fruit f=new Apple();
// j.run(new Orange());
// 有反射,配置文件
BufferedReader br=new BufferedReader(new FileReader("config.properties"));
Class clazz=Class.forName(br.readLine());
Fruit f=(Fruit)clazz.newInstance();//父类引用指向子类对象,成员方法,编译看左边,运行看右边
Juicer j=new Juicer();
j.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 Juicer {
public void run(Fruit f) {
f.squeeze();
}
}
输出结果: