java - 无法从子类访问方法

标签 java

我只是尝试使用 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/

相关文章:

java - FirebaseRecyclerAdapter DatabaseException : Can't convert object of type java. lang.String 输入帖子

java - 如何在 Java 游戏中将 400x400 窗口表示为 map ?

Java android将图片中的黑色更改为tracspadence并保存在文件中

java - web.xml 还是@WebServlet?

java - 如何在JOOQ中延迟获取组?

java - 在 jFreechart 上很好地显示 Y 轴

java - 构造函数未定义

java - 导入 com.google.android.gms.gcm 无法解析,Google Play Services 已经安装

java - 在 Java Applet 中单击后的 JButton "stay pressed"

java - 每当应用程序在 android pie 中被杀死时,服务也会被杀死