【训练15】 汽车长、鞋厂都是工厂
创建抽象类的工厂类,工厂类中有一个抽象的生产方法。让汽车长和鞋厂都继承工厂类,汽车长生产的是汽车,鞋厂生产的是鞋。
- 调用代码
/*【训练15】 汽车长、鞋厂都是工厂
* 创建抽象类的工厂类,工厂类中有一个抽象的生产方法。
* 让汽车长和鞋厂都继承工厂类,汽车长生产的是汽车,鞋厂生产的是鞋。
* */
package JcDtCxlhJk;
public class Xl15 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
AutoPlant autoPlant = new AutoPlant("汽车");
autoPlant.setName("汽车厂");
System.out.println(autoPlant.getName()+"生产的是"+autoPlant.productsName);
ShoeFactory shoeFactory = new ShoeFactory("鞋");
shoeFactory.setName("鞋厂");
System.out.println(shoeFactory.getName()+"生产的是"+shoeFactory.productsName);
}
}
- 工厂类
package JcDtCxlhJk;
public abstract class Factory {
String name;
public String getName() { //返回名字
return name;
}
public void setName(String name) { //设置定义名字
this.name = name;
}
public abstract String produce(); //抽象方法,生产
}
- 汽车厂
//汽车厂
package JcDtCxlhJk;
public class AutoPlant extends Factory{
String productsName;
public AutoPlant(String productsName) { // 有参的构造方法
this.productsName = productsName;
}
@Override
public String produce() { // 重写父类抽象方法
return this.productsName; // 初始化后的productsName = this.productsName
}
}
- 鞋厂
//鞋厂
package JcDtCxlhJk;
public class ShoeFactory extends Factory{
String productsName;
public ShoeFactory(String productsName) { // 构造方法
this.productsName = productsName; // 初始化对象,将产品名赋值给成员变量
}
@Override
public String produce() { // 重写父类抽象方法
return this.productsName;
}
}