IntelliJ IDEA 2025.1 Help

将继承替换为委托

用委托替换继承 重构让您在保留父类功能的同时,从继承层次结构中移除一个类。 IntelliJ IDEA 创建一个继承了前一个超类或接口的私有内部类。 通过新的内部类调用父类的选定方法。

  1. 选择您要重构的类。

  2. 从主菜单或上下文菜单中选择 重构 | 用委托取代继承

  3. 在打开的 对话框中,指定父对象和内部类定义的名称。 另外,请选择父类中将通过内部类委托的成员,以及 getter 选项。

  4. 预览并应用更改。

示例

之前

之后

// File Class.java public class Class extends SuperClass { public int varInt; public void openMethod() { ... } } // File SuperClass.java public abstract class SuperClass { public static final int CONSTANT=0; public abstract void openMethod(); public void secretMethod() { ... } }
// File Class.java public class Class { public int varInt; private final MySuperClass superClass = new MySuperClass(); public SuperClass getSuperClass() { return superClass; } public void openMethod() { superClass.openMethod(); } private class MySuperClass extends SuperClass { public void openMethod() { ... } } } // File SuperClass.java UNCHANGED public abstract class SuperClass { public static final int CONSTANT=0; public abstract void openMethod(); public void secretMethod() { ... } }

将继承替换为委托对话框

请使用此对话框指定 用委托替换继承 重构的选项。

条目

描述

替换委派继承从

在此处选择父对象,其继承将被替换。

字段名称

请为新内部类的字段指定名称。

内部类名

在此字段中指定内部类定义的名称。

委派成员

在此区域中,选择父类的成员,这些成员将通过内部类进行委托。

为委派成员生成getter

选中此选项以为内部类创建 getter 方法。

最后修改日期: 2025年 4月 24日