Почему я получаю «нестатическую переменную, на которую нельзя ссылаться из статического контекста»?

У меня есть очень простой класс, который я хочу использовать в качестве подкласса другого. Но когда я помещаю его код в родительский класс, я получаю:

non-static variable this cannot be referenced from a static context

С другой стороны, когда я ставлю подклассGenTestкод класса вне «родительского» кода; код класса -JavaApp1 Я не получаю эту ошибку.

<code>public class JavaApp1 {

    class GenTest {  
        @Deprecated
        void oldFunction() {
            System.out.println("don't use that");
        }
        void newFunction() {
            System.out.println("That's ok.");
        }
    }

    public static void main(String[] args) {
        GenTest x = new GenTest();
        x.oldFunction();
        x.newFunction();
    }
}
</code>

Почему это происходит ?

Ответы на вопрос(8)

Ваш ответ на вопрос