ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

super()和this()在构造方法中都代表什么?

2026/8/3 15:43:20 拓冰建站 浏览量
super()和this()在构造方法中都代表什么?

一、this()在构造方法里是什么

this(参数列表)调用本类中其他的构造方法

  1. 作用:一个构造器复用本类另一个构造器的代码,减少重复;
  2. 规则:
    • 必须写在构造方法第一行
    • 不能和super()同时出现;
    • 只能在构造方法中使用,普通方法里不能写this()

示例:

publicclassPerson{Stringname;intage;// 无参构造publicPerson(){this("张三",18);// 调用本类有参构造}// 有参构造publicPerson(Stringname,intage){this.name=name;this.age=age;}}

二、super()在构造方法里是什么

super(参数列表)调用父类的构造方法

  1. 作用:子类初始化时,先完成父类对象的初始化;
  2. 规则:
    • 必须写在构造方法第一行
    • 不手动写super(),编译器会自动在第一行插入无参super()
    • 如果父类只有有参构造,子类必须手动写super(实参)
    • this()互斥,不能同时存在。

示例:

classFather{Stringname;publicFather(Stringname){this.name=name;}}classSonextendsFather{// 必须手动调用父类有参构造publicSon(){super("老王");// 调用父类构造}}

三、核心对比

写法含义调用对象
this()调用构造器当前类(本类)其他构造方法
super()调用构造器直接父类的构造方法

四、重点共同规则

  1. 两者都只能放在构造方法第一行;
  2. 同一个构造方法中,this()super()不能同时出现;
  3. 都不能在普通成员方法、静态方法中使用。