2014-09-04 2 views
-2
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()); 
    } 
} 

Почему я получаю сообщение об ошибке (на левой стороне печатной линии):статическая и не статическая ошибка

не может сделать статическую ссылку на нестатической метод г() из тип B

?

+0

Вы получаете эту ошибку, потому что не можете статически ссылаться на нестатический метод g() из типа B. –

+0

создать объект для B –

ответ

0

Потому что вы не можете получить доступ к нестационарному методу в статическом контексте - в этом случае основной метод.

Это будет работать:

public static void main(String args[]){ 
    B b = new B(); 
    System.out.println(b.g()); 
} 

Вы должны создать экземпляр класса B в этом статическом основной метод, а затем вызвать g();

0

Вы не можете напрямую ссылаться на нестационарные методы, подобные этому, вы должны сделать объект вне класса B, а затем использовать метод g() для этого объекта.