Вот не выстраивается у меня в голове логическая цепочка того , что к какому типу привести , что бы вызвать метод лайв у объекта персон.Юзер.
Вот как то не устраивается логическая связь , что ,когда как и к чему нужно приводить и зачем. Поясните адекватно кто может. Спасибо.
П.С. : вывод компилятора :
Переменную "ic method live()" нельзя использовать в статическом контексте.
файл com/javarush/task/task14/task1411/Solution.java, строка 40, позиция 1043
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)
{
//создаем объект, пункт 2
key=reader.readLine();
if(key.equals("user")){
person = new Person.User();
}
if(key.equals("loser")){
person=new Person.Loser();
}
if(key.equals("coder")){
person=new Person.Coder();
}
if(key.equals("proger")){
person=new Person.Proger();
}
doWork(person); //вызываем doWork
break;
}
}
public static void doWork(Person person) {
if(person instanceof Person.User){
Person.User.live();
}
}
}