Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 静态和非静态误差_Java_Static - Fatal编程技术网

Java 静态和非静态误差

Java 静态和非静态误差,java,static,Java,Static,为什么会出现错误(在打印行的左侧): 无法从类型B对非静态方法g()进行静态引用 ?因为您无法在静态上下文中访问非静态方法-在本例中为main方法 这将有助于: public class B extends A{ public int g(){ int x = super.x; int y = super.getOne(); return x+y; } public static void main(String args[

为什么会出现错误(在打印行的左侧):

无法从类型B对非静态方法g()进行静态引用


因为您无法在静态上下文中访问非静态方法-在本例中为main方法

这将有助于:

public class B extends A{
    public int g(){
        int x = super.x;
        int y = super.getOne();
        return x+y;
    }
    public static void main(String args[]){
        System.out.println(g());
    }
}

您必须在该静态main方法中创建一个B类实例,然后调用
g()

您不能像这样直接调用非静态方法,您必须从类B中创建一个对象,然后对该对象使用方法g()。

由于无法从类型B中静态引用非静态方法g(),因此会出现该错误。请为类B创建一个对象
public static void main(String args[]){
    B b = new B();
    System.out.println(b.g());
}