Java中用extends实现单继承,子类继承父类非私有成员并可重写;语法为class子类名extends父类名{};仅支持一个直接父类;可访问public/protected成员及同包默认成员;private成员需通过getter/setter间接访问。

Java 中用 extends 关键字实现类的单继承,表示一个类从另一个类派生,获得父类的非私有成员(字段、方法)并可在此基础上扩展或重写。
基本语法和写法
子类通过 extends 声明继承父类,格式固定:
- class 子类名 extends 父类名 { ... }
- 父类不能是 final 类,子类也不能是 final(除非明确禁止继承)
- Java 不支持多继承,一个类只能 extends 一个直接父类
继承后能访问哪些成员
子类自动拥有父类中 public 和 protected 的字段与方法;默认(包级)访问权限 的成员在同包下也可访问;private 成员不可直接访问,但可通过 public/protected 的 getter/setter 间接使用。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 构造方法不被继承,但子类构造器默认会调用 super()(无参父类构造器)
- 若父类没有无参构造器,子类必须显式调用 super(参数) 作为第一行代码
常见用法:重写与 super 调用
子类常通过方法重写(Override)改变父类行为,同时可用 super 访问被覆盖的父类版本:
立即学习“Java免费学习笔记(深入)”;
- 重写要求方法名、参数列表、返回类型一致,访问权限不能更严格
- @Override 注解推荐添加,帮助编译器检查是否正确重写
- 例如:System.out.println(super.toString()); 在子类 toString 中复用父类逻辑
继承与组合的选择提醒
不是所有“有关系”都该用继承。当子类本质上是父类的一种(is-a 关系),如 Dog extends Animal,才适合 extends;若只是“用到”某个类的功能(has-a 关系),优先考虑组合(成员变量引用)。
- 过度继承会导致紧耦合、破坏封装,修改父类易影响所有子类
- 接口(implements)更适合定义行为契约,配合继承使用更灵活

















