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 = "coder"; while(key.equals("user")||key.equals("loser") || key.equals("coder") ||key.equals("proger")){ key = reader.readLine(); if (key.equals("user")) { person=new Person.User(); doWork(person); } else if (key.equals("loser")) { person=new Person.Loser(); doWork(person); } else if (key.equals("coder")) { person = new Person.Coder(); doWork(person); } else if (key.equals("proger")) { person = new Person.Proger(); doWork(person); } } } public static void doWork(Person person) { if (person instanceof Person.User) { Person.User person1=(Person.User) person; person1.live(); } else if(person instanceof Person.Loser) { Person.Loser person1=(Person.Loser) person; person1.doNothing(); } else if (person instanceof Person.Coder) { Person.Coder person1=(Person.Coder) person; person1.writeCode(); } else if (person instanceof Person.Proger) { Person.Proger person1=(Person.Proger) person; person1.enjoy(); } } } Второй вариант так нет??????? public class Solution { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); Person person = null; String key = "coder"; while(key.equals("user")||key.equals("loser") || key.equals("coder") ||key.equals("proger")){ key = reader.readLine(); if (key.equals("user")) { person=new Person.User(); } else if (key.equals("loser")) { person=new Person.Loser(); } else if (key.equals("coder")) { person = new Person.Coder(); } else if (key.equals("proger")) { person = new Person.Proger(); } doWork(person); } } public static void doWork(Person person) { if (person instanceof Person.User) { new Person.User().live(); } else if(person instanceof Person.Loser) { new Person.Loser().doNothing(); } else if (person instanceof Person.Coder) { new Person.Coder().writeCode(); } else if (person instanceof Person.Proger) { new Person.Proger().enjoy(); } } }