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个不允许同时出现;
posted @   盘思动  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示