У меня есть два вложенных класса внутри класса с внешним классом, расширяющим другой класс. Структура что-то вроде этого.Как получить доступ к методу расширенного класса из вложенного класса?
public class EXTENSION_CLASS
{
public int Get_Value()
{
return(100);
}
}
public class OUTER extends EXTENSION_CLASS
{
public static class NESTED1
{
public void Method1()
{
int value=0;
value=Get_Value();
System.out.println("Method1: "+value);
}
}
public static class NESTED2
{
NESTED1 Nested1_Instance=new NESTED1();
public void Method2()
{
Nested1_Instance.Method1();
}
}
public void run()
{
NESTED2 Nested2_Instance=new NESTED2();
Nested2_Instance.Method2();
}
public static void main (String[] args)
{
OUTER New_Class=new OUTER();
New_Class.run();
}
}
Я ожидаю выход: «Метод1: 100». Но я получаю вывод: «OUTER.java:16: ошибка: нестатический метод Get_Value() не может ссылаться на значение статического контекста = Get_Value();». Как я могу заставить это работать?
Приветствия!
Rajesh.
Не могли бы вы попытаться объявить метод Get_Value также статическим? –
Разве вы не задавали этот вопрос пару дней назад? http://stackoverflow.com/questions/27339664/accessing-methods-of-extended-class-from-inner-class/27339698#27339698. – ajb
Этот вопрос основан на любом реальном приложении, или вы просто играете, чтобы увидеть, что работает, а что нет на Java? Если это реальное приложение, я думаю, нам нужно знать больше о том, что представляют собой эти классы. Вы получили ряд решений, которые помогут программе скомпилировать и вывести '100', но не все из них будут уместны в реальной программе. – ajb