package com.factory;
public abstract class AbstractCreateFactory {
public abstract People createPeople(Class<? extends People> c);
}
package com.factory;
public interface People {
public void getColor();
public void talk();
}
package com.factory;
public class BlackPeople implements People{
@Override
public void getColor() {
System.out.println("黑人");
}
@Override
public void talk() {
System.out.println("说非州话");
}
}
package com.factory;
public class YellowPeople implements People{
@Override
public void getColor() {
System.out.println("黄种人");
}
@Override
public void talk() {
System.out.println("说汉语");
}
}
package com.factory;
public class CreateFactory extends AbstractCreateFactory{
@Override
public People createPeople(Class<? extends People> c) {
People people = null;
try {
people = (People)Class.forName(c.getName()).newInstance();
people.talk();
people.getColor();
} catch (Exception e) {
e.printStackTrace();
}
return people;
}
}