super关键字核心作用是明确访问父类成员:①用super.x访问被遮蔽的非private父类变量;②用super.method()调用被重写的方法;③在子类构造器首行用super()调用父类构造器;super非对象引用,而是当前对象中父类部分的语法标识。
super关键字在Java中核心作用是明确访问父类的成员——包括变量、方法和构造器,尤其在子类与父类存在同名成员时,避免歧义并保障继承逻辑正确。
当子类定义了与父类同名的实例变量时,该变量会“遮蔽”(shadow)父类变量。此时用this.x访问的是子类自己的变量,而super.x强制访问父类中定义的那个变量。
子类重写(override)父类方法后,若仍需执行父类原始逻辑(比如初始化前校验、日志记录、资源预处理),可用super.methodName()显式调用。
每个子类对象创建时,必须先完成父类部分的初始化。super()或super(…)必须作为子类构造器的第一条语句出现。
super不是指向一个独立父类对象的引用,它代表“当前this对象中属于父类的那一部分内存结构”。整个对象仍是子类实例,只是通过super可定向操作其继承自父类的字段与行为。