Странно как-то все работает верно
package com.javarush.task.task14.task1411;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
User, Loser, Coder and Proger
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Person person = null;
String key = null;
while (true)
{
String string = reader.readLine();
if (string.equals("user")) {
person = new User();
}
else if (string.equals("loser")) {
person = new Loser();
}
else if (string.equals("coder")) {
person = new Coder();
}
else if (string.equals("proger")) {
person = new Proger();
}
else
break;
doWork(person);
}
}
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 Proger) {
Proger proger = (Proger) person;
proger.enjoy();
}
}
}