標籤:
今天在寫一個小的程式時出現No enclosing instance of type Hidden is accessible. Must qualify the allocation with an enclosing instance of type Hidden (e.g. x.new A() where x is an instance of Hidden).的錯誤,尋找了很長時間,終於解決了。
我的程式是:
public class Hidden {
class Father{
/*public void str(){
//System.out.println("輸出父類的str!");
}*/
String str="父類的STR成員";
}
class Son extends Father{
/*public void str(){
System.out.println("輸出子類的str!");
}*/
String str="子類的STR成員";
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Father father=new Father();
Son son=new Son();
System.out.println("輸出父類的方法:");
System.out.println(father.str);
System.out.println("輸出子類的方法:");
System.out.println(son.str);
}
}
運行時提示:No enclosing instance of type Hidden is accessible. Must qualify the allocation with an enclosing instance of type Hidden (e.g. x.new A() where x is an instance of Hidden).
著了修改了好幾次,但是還是解決不了。最後在網上找了一篇文章,解決了。
Father和Son類都是內部類,只有靜態類才能被執行個體化。所以將Father和Son類前面添加static就可以了。
或者:
public class Hidden {
class Father{
/*public void str(){
//System.out.println("輸出父類的str!");
}*/
String str="父類的STR成員";
}
class Son extends Father{
/*public void str(){
System.out.println("輸出子類的str!");
}*/
String str="子類的STR成員";
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Hidden hidden=new Hidden();
Father father=hidden.new Father();
Son son=hidden.new Son();
System.out.println("輸出父類的方法:");
System.out.println(father.str);
System.out.println("輸出子類的方法:");
System.out.println(son.str);
}
}
原文連結:http://www.tuicool.com/articles/RFrANzr
Java錯誤No enclosing instance of type Hidden is accessible