说明:如果一个类继承了另外一个类,那么当进入该类的构造方法时,程序会默认先执行该类的父类的无参构造方法。
为什么:因为当该类继承别的类时,该类的所有构造方法的第一句必须是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