将继承替换为委托
用委托替换继承 重构让您在保留父类功能的同时,从继承层次结构中移除一个类。 IntelliJ IDEA 创建一个继承了前一个超类或接口的私有内部类。 通过新的内部类调用父类的选定方法。
示例
之前 | 之后 |
|---|---|
// 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日