java中抽象类应以abstract或base开头(如abstractshape、baseentity),接口用形容词或名词命名(如runnable、list),禁用i前缀和纯动词,均须遵循驼峰式、全英文、无下划线等基础规则。

Java 中抽象类和接口的命名有明确且被广泛遵循的规范,核心目标是让代码意图一目了然——看到名字就知道它是抽象模板还是行为契约。
抽象类命名:以 Abstract 或 Base 开头
抽象类本质是“不完整的父类”,命名需体现其作为基类模板的定位,同时与普通类、接口区分开。主流规范要求:
- 采用 驼峰式大写,和普通类一样(如
Person、UserService) - **强烈建议在类名前加
Abstract前缀**,例如:AbstractShape、AbstractAnimal、AbstractController - 另一种常见替代是用
Base,如:BaseRepository、BaseEntity,语义上强调“基础实现层” - 不推荐仅靠类名本身暗示抽象性(如叫
ShapeTemplate),因为编译器无法识别,也违背约定优先原则
接口命名:用名词或形容词,避免 I 前缀
接口代表“能力”或“角色”,不是“东西”,所以命名侧重行为特征而非实体感:
- 首选形容词,表达“可做什么”,如:
Runnable、Comparable、Serializable、Drawable - 也可用名词,但应体现契约本质,如:
List、Map、CharSequence;Spring 中常见DataSource、TransactionManager -
不使用
I前缀(如IShape),这是 C# 风格,在 Java 社区被视为反模式,Oracle 官方库和 Spring 等主流框架均不用 - 避免纯动词(如
Draw),而用动词的过去分词或形容词形式(Drawable),更符合 Java 语法习惯
两者共通的命名底线
无论抽象类还是接口,都必须遵守 Java 基础命名规则:
- 首字母大写,多词用驼峰(
AbstractDatabaseConfig、ConfigurableEnvironment) - 全部使用英文,不缩写(除非通用缩写,如
URL、HTTP、ID) - 不带下划线、不带数字开头、不使用关键字
- 包名全小写,用点分隔(
com.example.core.service),与类/接口名层级清晰分离
命名不是小事——AbstractUserDao 让人立刻明白这是可继承的骨架,UserRepository 是接口则暗示“任何实现都得提供增删改查能力”。规范的名字,就是最轻量的文档。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











