Java继承中核心关键字是extends和super:extends用于声明单继承关系,使子类获得父类非private成员;super用于在子类中访问父类属性、方法及构造器,且super()与this()不可共存于同一构造方法首行。

Java 继承中,核心关键字有两个:extends 和 super。它们分工明确,一个用于建立继承关系,一个用于在子类中访问父类成员。
extends:声明继承关系的关键字
它是定义“谁是谁的子类”的唯一语法工具,必须写在子类声明的开头。
- 格式固定:class 子类名 extends 父类名
- Java 只支持单继承,一个类只能 直接 继承一个父类(如
class Dog extends Animal) - 父类可以被多个子类继承(如
Animal可被Dog、Cat、Bird同时继承) - 继承后,子类自动获得父类中 非 private 的属性和方法(
public、protected、同包下的默认权限成员)
super:访问父类成员的关键字
它代表对父类对象的引用,主要解决子类与父类同名成员冲突或需要复用父类逻辑的场景。
-
访问父类属性:当子类定义了和父类同名的字段(如都叫
name),用super.name明确调用父类版本 -
调用父类方法:子类重写了父类方法(如
eat()),但仍需执行原逻辑时,写super.eat() -
调用父类构造器:必须是子类构造方法的第一条语句,如
super("张三");若父类只有有参构造,子类构造器中必须显式调用super(...)
注意:super 不能和 this() 共存
一个构造方法里,要么用 super(...) 调父类构造,要么用 this(...) 调本类其他构造,二者不可同时出现,且都必须是首行语句。
补充:final 与继承的关系
虽然不是继承的“使用”关键字,但 final 是控制继承的重要修饰符:
-
final class:该类不能被继承(如String类) -
final修饰的方法:不能被子类重写 -
final修饰的变量:一旦赋值不可修改(与继承无直接关系,但常用于父类中定义不可变配置)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











