JAVA继承子类对象实例化流程
子类对象实例化的同时,一定会实例化父类对象
代码演示
class Person {
public Person() {
System.out.println("父类实例化");
}
}
class Student extends Person {
public Student() {
//super() 默认先调用构造父类,若无参数写与不写都行
System.out.println("子类实例化");
}
}
public class initFather {
public static void main(String[] args) {
new Student();
}
}
运行结果
父类实例化
子类实例化
在子类构造函数中,首行默认调用了父类构造,若父类含有无参构造,则super()可以不写。
若父类未包含无参构造,则需要显式调用super()并传递参数。
代码演示
class Person {
private String name;
//父类不提供无参构造
public Person(String name) {
this.name = name;
System.out.println(this.name);
}
}
class Student extends Person {
private int age;
public Student(String name,int age) {
//此处super不能省略,应调用并且传递参数
super(name);
this.age = age;
System.out.println(this.age);
}
}
public class initFather {
public static void main(String[] args) {
new Student("李明",18);
}
}
运行结果
李明
18