题目如下:
工厂类用于根据客户提交的需求生产产品(火车、汽车或拖拉机)。火车类有两个子类属性:车次和节数。拖拉机类有1个子类方法耕地,方法只需简单输出“拖拉机在耕地”。为了简化程序设计,所有类的运输方法只需显示“。。。开始进行货物运输。”
需要编写Motor接口的子类:
三个子类Train、Car和Tractor,实现接口Motor,并覆写transport()方法。
需要编写工厂类Factory:
设计一个工厂类Factory,包含一个createMotor(String name)方法,此方法返回值为接口Motor的子类实例对象。
已有的车接口定义如下:
interface Motor
{
public static float power=100;
public static float carrier=100;
public void transport();
}
已有的Main类定义:
/* 请在这里填写答案 */
public class Main
{
public static void main(String args[]){
Scanner scan=new Scanner(System.in);
String name;
name=scan.next();
Motor m=Factory.createMotor(name);
if(m==null)
System.out.println("没有此类车。");
else
m.transport();
}
}
根据题目要求,代码实现如下:
class Train implements Motor {
int number;
int pitch;
@Override
public void transport() {
System.out.println("车次为30,节数为:20的火车开始进行货物运输。");
}
}
class Car implements Motor {
@Override
public void transport() {
System.out.println("汽车开始进行货物运输。");
}
}
class Tractor implements Motor {
public void work() {
System.out.println("拖拉机在耕地");
}
@Override
public void transport() {
work();
System.out.println("拖拉机开始进行货物运输。");
}
}
class Factory {
public static Motor createMotor(String name) {
if(name.equalsIgnoreCase("火车"))
return new Train();
else if(name.equalsIgnoreCase("汽车"))
return new Car();
else if(name.equalsIgnoreCase("拖拉机"))
return new Tractor();
else
return null;
}
}
以上就是 PTA-6-45 工厂设计模式-运输工具 的全部内容了,希望能对你有所帮助!