說明:如果一個類繼承了另外一個類,那麼當進入該類的構造方法時,程序會默認先執行該類的父類的無參構造方法。
爲什麼:因爲當該類繼承別的類時,該類的所有構造方法的第一句必須是super();也即是調用父類的無參構造函數,就算我們不寫編譯器也會自動幫我們加上。
package Test;
public class Test {
public static void main(String[] args) {
Student s = new Student();
}
}
class Humen{
Humen() {
System.out.println("Humen");
}
}
class Student extends Humen{
Student() {
System.out.println("Student");
}
}
輸出結果
Humen
Student
當調用有參構造時
package Test;
public class Test {
public static void main(String[] args) {
Student s = new Student("hello");
}
}
class Humen{
Humen() {
System.out.println("Humen");
}
Humen(String s) {
System.out.println(s);
}
}
class Student extends Humen{
Student() {
System.out.println("Student");
}
Student(String s) {
System.out.println(s);
}
}
輸出結果
Humen
hello