abstract关键字用于定义抽象类和抽象方法,核心作用是“定契约、留实现”;抽象类用abstract class声明,不可实例化,可含普通成员和抽象方法;抽象方法无实现,以分号结尾,子类必须重写。

abstract 关键字用来定义抽象类和抽象方法,核心作用是“定契约、留实现”——规定子类必须做什么,但不规定怎么做。
抽象类怎么声明和使用
用 abstract class 类名 声明,不能 new 实例,只能被继承:
- 类里可以有普通字段、构造方法、具体方法(带实现)和抽象方法(无实现)
- 哪怕一个抽象方法都没有,只要加了 abstract,这个类就是抽象类
- 子类继承后,必须重写所有抽象方法,否则子类也得标为 abstract
抽象方法怎么写
只声明、不实现,语法上没有方法体,以分号结尾:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 必须出现在抽象类中(接口里也可以,但那是另一套规则)
- 不能是 private、static、final 或 native
- 例如:public abstract void run();
常见误区提醒
abstract 不是万能修饰符,有明确限制:
- 不能修饰变量(字段)、构造器、静态方法、私有方法
- 抽象类可以有构造方法,用于子类初始化时调用(通过 super())
- 抽象类本身不能实例化,但可以用它声明变量,指向具体子类对象(多态基础)
典型应用场景
适合描述“有共性行为,但实现因子类而异”的模型:
- 图形计算:Shape 抽象类定义 area(),Circle 和 Rectangle 各自实现
- 动物系统:Animal 定义 sound(),Dog 和 Cat 分别给出叫声逻辑
- 框架设计:提供模板骨架,强制插件或业务模块补全关键步骤
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










