簡體   English   中英

為什么會出現“構造函數未定義”錯誤?

[英]Why do I get a 'constructor is undefined` error?

為什么下面的代碼會產生編譯錯誤(構造函數AA()未定義)? 它不應該調用默認構造函數嗎?

public class A{
    public A(){ }
}

public class AA extends A{
    public AA(int aa){ }
}

public class C{
    public static void main(String[] args){
        A a= new AA();
    }
}

編譯器將只增加一個默認的構造函數的class如果在沒有構造class是不適合的情況下AA

8.8.9默認構造函數 (Java語言規范)

如果一個類不包含構造函數聲明,則默認構造函數被隱式聲明

你寫

A a= new AA(); // try to invoke default constructor

但是類AA沒有默認構造函數,因為您編寫了自己的構造函數

public AA(int aa){ }

所以試試這個:

int someInteger = 1;
A a= new AA(someInteger);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM