我不是很理解为什么这么做。但是我如果把四个类放出来最后四个测试就失败,如果不改变的话不知道怎么实现目标。帮帮我。。。。
package zh.codegym.task.task14.task1411;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
User、loser、coder 和 programmer
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Person person = null;
String key = reader.readLine();
// 这是读取键的循环。项目 1
while(true){
// 创建一个对象。项目 2
if(key.equals("user")){
person = new User();
doWork(person);
}else if(key.equals("loser")){
person = new Loser();
doWork(person);
}else if(key.equals("coder")){
person = new Coder();
doWork(person);
}else if(key.equals("programmer")){
person = new Programmer();
doWork(person);
}else {
break;
}
key = reader.readLine();
}
}
public static void doWork(Person person) {
// 项目 3
if(person instanceof User){
User user = (User)person;
user.live();
}else if(person instanceof Loser){
Loser loser = (Loser)person;
loser.doNothing();
}else if(person instanceof Coder){
Coder coder = (Coder)person;
coder.writeCode();
}else if(person instanceof Programmer){
Programmer programmer = (Programmer)person;
programmer.enjoy();
}
}
}