如果你寫的類中沒有構造方法,則編譯器會自動幫你創建一個缺省構造方法(無參的構造方法)。
但是,如果你已經定義瞭一個構造方法(無論是否有參數),編譯器就不會幫你自動創建缺省構造方法。
有一個類:
[java]
class Dog {
private String name;
Dog(String name) {}
}
class Dog {
private String name;
Dog(String name) {} www.aiwalls.com
}
這個類已經有一個有參的構造方法瞭,所以編譯器就不會幫你自動創建無參的缺省構造方法瞭,如果你這樣寫:
[java] view plaincopyprint?new Dog();
new Dog();
編譯器就會報錯:沒有找到匹配的構造器。這就好比,要是你沒有提供任何構造器,編譯器會認為:“你需要一個構造器,讓我給你制造一個吧”,但假如你已寫瞭一個構造器,編譯器則會認為:“啊,你已寫瞭一個構造器,所以你知道你在做什麼;你是刻意省略瞭缺省構造器。”
作者:tianjf0514