8.3 子类对象实例化流程
demo1
- 实例化子类,子类的父类也会实例化,而且是比子类先实例化
class Person {
public Person(){
System.out.println("Person实例化类");
}
}
class Student extends Person {
public Student(){
super();// super()就是子类构造调用父类构造的语句,只能放在子类构造方法的首行;--写不写都一样;
System.out.println("Student实例化了");
}
}
public class HelloWorld {
public static void main(String args[]){
new Student();// 实例化子类,子类的父类也会实例化,而且是比子类先实例化
}
}
- 结果
Person实例化类
Student实例化了
demo2 super 如果父类没有无参构造,必须用super来调用有参构造
- 无论你如何折腾,在实例化子类的时候,一定会先实例化父类对象
- super,this都可以调用构造方法;super是由子类调用父类的构造方法;this是调用本类;2个都是放在构造方法的首行;而且2个不允许同时出现;
class Person {
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
System.out.println("Person实例化类");
}
}
class Student extends Person {
private String school;
public Student(String name,int age,String school){
super(name,age);// 父类无无参构造,必须明确调父类有参构造
this.school = school;
System.out.println("Student实例化咯");
}
}
public class HelloWorld {
public static void main(String args[]){
new Student("李牛逼",29,"山东大学");
}
}
// super,this都可以调用构造方法;super是由子类调用父类的构造方法;this是调用本类;
// 2个都是放在构造方法的首行;而且2个不允许同时出现;
相信坚持的力量,日复一日的习惯.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)