获取error-:非静态变量,这不能从静态上下文中引用

时间:2017-01-17 10:41:42

标签: java

运行时此代码出现

错误 获取error-:非静态变量这不能从静态上下文引用我该怎么做才能解析这段代码

class Testy {
    void girl()
    {
        System.out.println("Black girl");

    }

    class Testy1 extends Testy
    {
        void girl()
        {
            System.out.println("White girl");

        }
    }

    public static void main(String[] args) {
        Testy p=new Testy1 ();
        p.girl();
    }

}

2 个答案:

答案 0 :(得分:0)

这是正确的代码。

将Testy1类设为静态,因为它是内部类。

  class Testy {
void girl()
{
    System.out.println("Black girl");

}

static class Testy1 extends Testy
{
    void girl()
    {
        System.out.println("White girl");

    }
}

public static void main(String[] args) {
    Testy p=new Testy1();
    p.girl();
}

}

答案 1 :(得分:0)

如果你想使用内部类,那么你必须按如下方式调用函数

   class Testy {
        void girl()
        {
            System.out.println("Black girl");

        }


        class Testy1 extends Testy
        {
            void girl()
            {
                System.out.println("White girl");

            }
        }


    public static void main(String[] args) {
        Testy t = new Testy(); // first create object of outer class
        Testy.Testy1 t1 = t.new Testy1(); //using t create object of inner class
        t1.girl();
    }
}