程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> java-無法從上下文中引用非靜態變量(初學者)

java-無法從上下文中引用非靜態變量(初學者)

編輯:編程解疑
無法從上下文中引用非靜態變量(初學者)

public class TestExtend {
class A {
protected void print(String s){
System.out.println(s);
}
A() {print("A()");}
public void f() {print("A:f()");}
}

class B extends A {
B() {print("B()");}
public void f() {print("B:()");}

}
public static void main (String[] args) {
B b = new B(); --錯誤行,這行代碼有問題
b.f();
}

}

最佳回答:


靜態內部類的用法,你想要在類的靜態方法中使用內部類的話,那麼需要將內部類定義成靜態的,不然是找不到內部類的,因為不聲明static的話,內部類只會在TestExtend對象創建之後才會生成。你可以試一下如下的代碼:

 public class TestExtend {
    static class  A {
        protected void print(String s){
            System.out.println(s);
        }
        A() {print("A()");}
        public void f() {print("A:f()");}
    }
    static class  B extends A {
        B() {print("B()");}
        public void f() {print("B:()");}
    }
    public static void main (String[] args) {
        B b = new B();
        b.f();
    }
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved