public interface Car {
public void run();
public void stop();
}
public class Ford implements Car{
@Override
public void run() {
System.out.println(" Ford开始跑");
}
@Override
public void stop() {
System.out.println(" Ford跑完了");
}
public class Toyota implements Car {
@Override
public void run() {
System.out.println("开始跑");
}
@Override
public void stop() {
System.out.println("跑完了");
}
}
public class Factory {
public static Car getCarInstance(String type){
Car c=null;
try {
c=(Car)(Class.forName("ClassFactory."+type).newInstance());//利用反射得到汽车类型
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return c;
}
}
public class Test {
public static void main(String[] args) {
Car c=Factory.getCarInstance(“Ford”);
if(c!=null){
c.run();
c.stop();
}else{
System.out.println(“造不了这种汽车。。。”);
}
}
}