我只是尝试使用 SubClass 类中的 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 更改为静态,但收到此错误
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();
最佳答案
Main 和 SubClass 都是 Sub 类的成员,并且您不能引用 Sub 类的非静态成员,该成员是 Main 中的 SubClass(静态成员)。您需要将整个子类设为静态,而不仅仅是 Method_In_SubClass()。
关于java - 无法从子类访问方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62194946/