首页 > 解决方案 > 无法从子类访问方法

问题描述

我只是想使用 SubClass Class 中的 Method_In_SubClass() 方法,但我遇到了这些错误。我尝试将 Method_In_SubClass 更改为 Static 但仍然出现错误

public class Sub {

//Method 1 : Non-Static
public void  nonstatictest(){
    System.out.println("This is non-Static method.");
}

//Mehod 2 : Static
public static void statictest(){
    System.out.println("This is static method.");
}

//SubClass 
public class SubClass{

    //Method in SubClass
    public void Method_In_SubClass(){
            System.out.println("This is Method in SubClass");
    }
}


public static void main(String args[]){
        Sub SubObject = new Sub();
        SubClass SubClassobject = new SubClass();
        SubObject.nonstatictest();
        statictest();
        SubClassobject.Method_In_SubClass();

}
}

错误:

Sub.java:25: error: non-static variable this cannot be referenced from a static context
            SubClass SubClassobject = new SubClass();
                                        ^
1 error

然后我将 Method_In_SubClass 更改为 static 但收到此错误

Error :Illegal static declaration in inner class Sub.SubClass
        public static void Method_In_SubClass(){
                           ^
  modifier 'static' is only allowed in constant variable declarations
Sub.java:25: error: non-static variable this cannot be referenced from a static context
            SubClass SubClassobject = new SubClass();

标签: java

解决方案


Main 和 SubClass 都是 Sub 类的成员,您不能引用 Sub 类的非静态成员,即 Main 中的 SubClass,它是静态成员。您需要将整个子类变为静态,而不仅仅是 Method_In_SubClass()。


推荐阅读