Java 静态和非静态误差
为什么会出现错误(在打印行的左侧): 无法从类型B对非静态方法g()进行静态引用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[
?因为您无法在静态上下文中访问非静态方法-在本例中为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());
}