Почему-то не находит метод у экземпляра. Вроде бы, он должен успевать записываться в переменную.
Не найден метод "live()" в переменной "person". файл com/javarush/task/task14/task1411/Solution.java, строка 53, позиция 1458
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;
//тут цикл по чтению ключей, пункт 1
while(true)
{
key = reader.readLine();
if (!key.equals("user") &&
!key.equals("loser") &&
!key.equals("coder") &&
!key.equals("proger")
) {
reader.close();
break;
}
//создаем объект, пункт 2
switch(key) {
case "user":
person = new Person.User();
break;
case "loser":
person = new Person.Loser();
break;
case "coder":
person = new Person.Coder();
break;
case "proger":
person = new Person.Proger();
break;
}
doWork(person); //вызываем doWork
}
}
public static void doWork(Person person) {
// пункт 3
if (person instanceof Person.User) {
person.live();
} else if (person instanceof Person.Loser) {
person.doNothing();
} else if (person instanceof Person.Coder) {
person.writeCode();
} else if (person instanceof Person.Proger) {
person.enjoy();
}
}
}