一、有父類的類在創建自己對象時,先調用父類的構造函數,有以下兩種情況:
1、當父類沒有構造器時(即只有默認的隱式的無參構造器),先調用該隱式構造器,再調用自己的構造器;
public class test extends sup{
public test() {
}
public test(int i){
System.out.println(i);
}
public static void main(String args[]) {
test t = new test(1);
}
}
class sup{
}
注意:要麼父類無任何顯式構造器,要麼父類必須聲明顯式的無參構造器,二者必居其一!父類有其它構造器--有參構造器,但沒有無參構造器時,會出現編譯期錯誤。
2、當父類有顯式構造器時--指顯式聲明瞭無參構造器,先調用該無參構造器,再調用自己構造器。
public class test extends sup{
public test() {
}
public test(int i){
System.out.println(i);
}
public static void main(String args[]) {
test t = new test(1);
}
}
class sup{
public sup(){//---------調用該構造器
System.out.println(3);
}
public sup(int i){
System.out.println(4);
}
}
二、無父類的類在創建自己對象時,直接調用自己的構造器,無須調用自己的無參構造器。
public class test{
public test(int i){
System.out.println(i);
}
public static void main(String args[]) {
test t = new test(1);
}
}