Just don't understand why. Could somebody help?
package com.codegym.task.task14.task1411;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
User, loser, coder and programmer
*/
public class Solution implements Person {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Person person = null;
String key = null;
while(true) {
key = reader.readLine();
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;
}
}
public static void doWork(Person person) {
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();
}
}
}