# 源代码层次结构

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com/zh-cn/help/idea/llms.txt).

使用 IntelliJ IDEA，您可以检查类、方法和调用的层次结构，并探索源文件的结构。

![构建和浏览调用层次结构。](https://resources.jetbrains.com/help/img/idea/2026.3/ri_callHierarchy.animated.gif)

## 分析代码层次结构。

* 类型 层次结构显示一个类的父类和子类。

* 方法 层次结构显示子类中重写所选方法的地方以及所选方法被重写的超类或接口。 在层次结构树中，IntelliJ IDEA 显示 ![该方法应该定义图标](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.hierarchy.shouldDefineMethod.svg)以指示不是抽象但没有定义方法的子类。 在一个方法没有在类中定义，但在超类中定义时，IntelliJ IDEA 显示 ![未定义方法图标](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.hierarchy.methodNotDefined.svg)。

* 调用 层次结构显示方法的调用者（超类型）或被调用者（子类型）。 如果您在字段上调用调用层次结构，系统将显示使用所选字段的方法列表。

[构建](#call)后，可以在   层次结构  工具窗口中立即视图和检查层次结构。 调用方和被调用方的层次结构显示在 [两个独立的选项卡](#ws_toggle_between_views)中：点击 ![调用层次结构工具栏按钮](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.hierarchy.supertypes.svg)视图调用方，点击 ![被调用者层次结构按钮](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.hierarchy.subtypes.svg)视图被调用方。

> **Tip:**
> 默认情况下，每个新构建的层次结构都会覆盖当前标签页的内容。 可以 [保留当前选项卡](#retain)并在新选项卡中构建下一个层次结构。

Procedure: 构建类型层次结构

1. 在   项目  工具窗口中选择所需的类，或在编辑器中打开它。

2. 在主菜单中，前往  `导航 | 类型层次结构`  或者直接按 `Ctrl+H` (Windows), `⌃ H` (macOS), `⌃ H` (IntelliJ IDEA Classic (macOS)), `⌃ ⌥ H` (macOS System Shortcuts), `Ctrl+H` (XWin), `Ctrl+H` (GNOME), `Ctrl+H` (KDE), `Ctrl+H` (Emacs), `Ctrl+H` (Sublime Text), `Ctrl+H` (Sublime Text (macOS)), `Ctrl+E, H` (Visual Studio), `⌘ E, H` (Visual Studio (macOS)), `Alt+Shift+F12` (NetBeans), `F4` (Eclipse), `F4` (Eclipse (macOS))。

![类层次结构显示在层次工具窗口中](https://resources.jetbrains.com/help/img/idea/2026.3/java_type_hierarchy.png)

不同颜色的元素代表这些文件所属的不同范围。 例如，默认情况下绿色用于测试。 有关更多信息，请参见 [将范围与颜色关联](configuring-scopes-and-file-colors.html#associate-file-color-with-a-scope)。

Procedure: 构建方法层次结构

1. 在编辑器中打开文件，并将文本光标放置在所需方法的声明处。

或者，您可以在   项目   工具窗口中选择所需的方法。

2. 转到  `导航 | 方法层次结构`  或按 `Ctrl+Shift+H` (Windows), `⌘ ⇧ H` (macOS), `⌘ ⇧ H` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ H` (macOS System Shortcuts), `Ctrl+Shift+H` (XWin), `Ctrl+Shift+H` (GNOME), `Ctrl+Shift+H` (KDE), `Ctrl+Shift+H` (Emacs), `Ctrl+Shift+H` (Sublime Text), `Ctrl+Shift+H` (Sublime Text (macOS)), `Ctrl+Shift+H` (Visual Studio), `Ctrl+Shift+H` (Visual Studio (macOS)), `Ctrl+Shift+H` (NetBeans), `Ctrl+Shift+H` (Eclipse), `⌘ ⇧ H` (Eclipse (macOS))。

Procedure: 构建调用层次结构

1. 在编辑器中打开文件，并将文本光标放置在所需方法或字段的声明或使用位置。

或者，在   项目   工具窗口中选择所需的方法或字段。

2. 在主菜单中，转到  `导航 | 调用层次结构`  或按 `Ctrl+Alt+H` (Windows), `⌃ ⌥ H` (macOS), `⌃ ⌥ H` (IntelliJ IDEA Classic (macOS)), `⌃ ⇧ H` (macOS System Shortcuts), `Ctrl+Alt+H` (XWin), `Ctrl+Alt+H` (GNOME), `Ctrl+Alt+H` (KDE), `Ctrl+Alt+H` (Emacs), `Ctrl+Alt+H` (Sublime Text), `⌃ ⌥ H` (Sublime Text (macOS)), `Ctrl+Alt+H` (Visual Studio), `⌃ ⌥ H` (Visual Studio (macOS)), `Ctrl+Alt+H` (NetBeans), `Ctrl+Alt+H` (Eclipse), `⌃ ⌥ H` (Eclipse (macOS))。

Procedure: 保留层级选项卡

* 在   层次结构  工具窗口中，点击工具栏上的   固定选项卡  按钮 ![固定按钮](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.general.pin.svg)。

##  查看层次结构 

Procedure: 打开Hierarchy工具窗口

1. 请确保您已经构建了要显示的层次结构，请参见上面的 [构建层次结构](#ws_build_hierarchy)。

2. 从主菜单中选择  `视图 | 工具窗口 | 层次结构` 。

Procedure: 在选项卡之间导航

* 点击当前显示的选项卡并从列表中选择下一个要显示的选项卡。

Procedure: 在视图之间切换

* 借助 IntelliJ IDEA，您可以构建并探索递增或递减的层次结构，即被调用者或调用方法、父类或子类等。

点击 ![调用层次结构工具栏按钮](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.hierarchy.supertypes.svg)或 ![被调用者层次结构按钮](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.hierarchy.subtypes.svg)分别显示调用方法或被调用方法。

## 阶层工具窗口按钮

|  条目  |  描述  |  适用范围  |
| --- | --- | --- |
|  ![类层次按钮](https://resources.jetbrains.com/help/img/idea/2026.3/app.expui.hierarchy.classHierarchy.svg)  |     显示所选类的父类和子类，在结果树中用箭头标记。      > **Tip:** > 对于接口，此按钮被禁用。    |  类层次结构  |
|  ![调用层次结构工具栏按钮](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.hierarchy.supertypes.svg)  |  取决于层次结构类型：     * 类层次结构 ：显示当前类的每个超类型的层次结构。    * 调用层次 ：显示所选方法的调用者。    |     类层次结构       调用层次结构     |
|  ![被调用者层次结构按钮](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.hierarchy.subtypes.svg)  |     取决于层次结构类型：        * 类层次结构 ：显示所有扩展所选类的类。    * 调用层次结构 ：显示所选方法的被调用方法。    |     类层次结构       调用层次结构     |
|  ![按字母顺序排序" 按钮](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.objectBrowser.sortAlphabetically.svg)  |  对树中所有元素进行字母顺序排序。  |  所有层次结构  |
|  范围  |     使用此列表限制当前层次结构的作用域：        * 项目 ：在整个项目中追踪方法的使用情况。    * 测试 ：跟踪方法在测试类中的使用情况。    * 全部 ：在项目和库中追踪方法的使用情况。    * 这个类 ：将作用域限制为当前类。      除预配置的作用域外，还可以定义自己的作用域。 要定义范围，请从列表中选择   配置  ，并在 [范围](configuring-scopes-and-file-colors.html)对话框中定义所需的范围。     |  调用层次结构  |
|     在方法层次结构中，以下类的树视图可用：        * ![加号图标](https://resources.jetbrains.com/help/img/idea/2026.3/app.expui.general.add.svg)：定义了该方法。    * ![减号图标](https://resources.jetbrains.com/help/img/idea/2026.3/app.expui.general.remove.svg)：该方法仅在超类中定义。    * ![感叹号图标](https://resources.jetbrains.com/help/img/idea/2026.3/app.general.exclMark.svg)：必须定义该方法，因为该类不是抽象类。    |
|  ![刷新按钮](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.general.refresh.svg)  |  显示所有更新的类或类结构。  |  所有层次结构  |
|  ![点击导航按钮](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.general.autoscrollToSource.svg)  |  移动到对应层次结构树中选定节点的源代码文件及部分。  |  所有层次结构  |
|  !["全部展开"按钮](https://resources.jetbrains.com/help/img/idea/2026.3/app.expui.general.expandAll.svg)  |  展开所有节点。  |  所有层次结构  |
|  !["Pin 按钮"](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.general.pin.svg)  |  锁定当前选项卡，防止关闭和重用。 下一个命令的结果会显示在新选项卡中。  |  所有层次结构  |
|  ![导出到文本文件](https://resources.jetbrains.com/help/img/idea/2026.3/app.expui.general.export.svg)  |  将层次结构导出到文本文件。 您可以为此文件指定位置。  |  所有层次结构  |
|  ![关闭按钮](https://resources.jetbrains.com/help/img/idea/2026.3/app.windows.closeActive.svg)  |  关闭工具窗口。  |  所有层次结构  |

