具体类必须实现抽象父类中所有未实现的抽象方法,否则编译不通过;抽象方法无方法体,子类重写时需严格匹配签名、访问权限不更严格、异常不扩大,中间抽象子类可延迟实现,最终具体子类须全部完成。

具体类必须实现抽象父类中所有未实现的抽象方法,否则编译不通过。
必须重写全部抽象方法
抽象父类中用 abstract 修饰的方法没有方法体,子类继承后不能跳过它们。只要子类不是抽象类,就必须为每个抽象方法提供具体的实现(即重写),包括方法名、参数列表、返回类型(或协变返回类型)都需匹配。
- 哪怕只漏写一个抽象方法,该具体类就无法通过编译
- 重写时访问权限不能比父类更严格(如父类是 public,子类不能写 private 或 protected)
- 抛出的异常类型不能新增检查型异常(可减少或不抛)
继承链中可以分层实现
如果中间有抽象子类,它不必实现全部抽象方法,只需实现部分;剩余抽象方法由最终的具体子类完成。例如:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- A 是抽象类,含 method1() 和 method2() 两个抽象方法
- B 继承 A 并实现 method1(),但仍是抽象类 → B 可不实现 method2()
- C 继承 B,必须实现 method2() 才能成为具体类
注意默认方法和静态方法不影响抽象要求
Java 8+ 中抽象类可含 default 方法(有实现)和 static 方法,这些不是抽象方法,子类无需重写(除非想覆盖)。只有用 abstract 修饰、无方法体的方法才强制要求实现。
立即学习“Java免费学习笔记(深入)”;
- abstract void doWork(); → 必须重写
- void doSomething() { ... } → 可选重写
- static void log() { ... } → 不能被重写(属于类本身)
IDE 通常会自动提示并生成存根
在 IntelliJ IDEA 或 Eclipse 中,当新建具体子类继承抽象父类时,编辑器会高亮错误,并提供快捷操作(如 Alt+Enter)一键生成所有未实现的抽象方法存根,帮你快速补全空方法体,再逐步填写逻辑。

















