第一步:建立一个抽象的Animal父类
package 工厂模式;
public abstract class Animal {
public static final int d=1;
public final static int p=2;
public abstract String get();
public static Animal getAnimal(int type){
switch(type){
case d:
return new Dog();
case p:
return new pig();
default:
return null;
}
}
}
第二步:建立两个或更多类继承以上的同一个父类
package 工厂模式;
public class Dog extends Animal {
public String get(){
return "i'am a dog";
}
package 工厂模式;
public class pig extends Animal {
public String get(){
return "i'am a pig";
}
}
第三步:通过调用父类来创建子类实例,得到预期目的
package 工厂模式;
public class Factory {
public static void main(String args[]){
Animal myAimal =Animal.getAnimal(Animal.d);
System.out.println(myAimal.get());
}
}
以上例子中父类是抽象的,所以调用时只可以用类名来调用,从而创建子类对象,由于动态绑定,所以可以通过子类对象来调用用来实现操作的方法,这就是用到了多态的特性的典型例子。
package 工厂模式;
public abstract class Animal {
public static final int d=1;
public final static int p=2;
public abstract String get();
public static Animal getAnimal(int type){
switch(type){
case d:
return new Dog();
case p:
return new pig();
default:
return null;
}
}
}
第二步:建立两个或更多类继承以上的同一个父类
package 工厂模式;
public class Dog extends Animal {
public String get(){
return "i'am a dog";
}
package 工厂模式;
public class pig extends Animal {
public String get(){
return "i'am a pig";
}
}
第三步:通过调用父类来创建子类实例,得到预期目的
package 工厂模式;
public class Factory {
public static void main(String args[]){
Animal myAimal =Animal.getAnimal(Animal.d);
System.out.println(myAimal.get());
}
}
以上例子中父类是抽象的,所以调用时只可以用类名来调用,从而创建子类对象,由于动态绑定,所以可以通过子类对象来调用用来实现操作的方法,这就是用到了多态的特性的典型例子。