-4
class A
{
private int i = 10,j=0;
public void f(){}
public void g(){}
}
class B extends A
{
public int ib = 20;
public void g(){}
}
public class C
{
A a = new A();//1
B b = new B();//2
public static void main(String[] args)
{System.out.println(b.ib);}
}
異常「主要」 java.lang.Error的:未解決的問題,編譯: 不能使靜態參考非靜態字段B無法理解的例外在線程
在TestClass.C.main (C.java:18)
主席先生,您可否對上述程序進行更改以獲取B類中聲明的「ib」!
你沒有在B中聲明的「i」,它是從'A'繼承的。 –
write B b = new B();在main類中,因爲main是一個靜態方法,你不能訪問靜態方法中的靜態變量,所以你應該閱讀更多關於靜態和非靜態的內容。 –
10感謝解決方案的nilesh,它工作。 但你能解釋我的錯誤嗎? –