IntelliJ IDEA教程
IntelliJ IDEA的一般准则
IntelliJ IDEA编辑器
IntelliJ IDEA高级编辑程序
IDEA使用Subversion集成
IntelliJ IDEA提取重构
IntelliJ IDEA插件

IntelliJ IDEA提取超类

提取超类重构有两个选项:

⒈ 根据现有的类创建一个超类。

⒉ 重命名原始类,以便它成为新创建的超类的实现。在这种情况下,IntelliJ IDEA 会将所有原始类的用法更改为在可能的情况下使用超类。

原始类中的字段和方法可以移动到超类。同样,对于一个方法,你只能传递方法声明,而不是在超类中将方法声明为抽象的实现。因此,您将拥有超类和从超类继承的原始类。

提取超类重构前

// File Class.java
public class Class {
    public int varInt;
    private double varDouble;
    public static final int CONSTANT = 0;
    public void publicMethod() {
        ...
    }
    public void hiddenMethod() {
        ...
    }
    public void setVarDouble(double var) {
        this.varDouble = var;
    }
    public double getVarDouble() {
        return
                  varDouble;
    }
}

提取超类重构后

// File Class.java
public class Class extends SuperClass {
Int;
blicMethod() {
ddenMethod() {
lass.java
ass SuperClass {
 varDouble;
final int CONSTANT = 0;
t void publicMethod();
tVarDouble(double var) {
uble = var;

getVarDouble() {
Double;

提取超类

⒈ 在其中一个视图中选择所需的类,或者只是在编辑器中打开它。

⒉ 在主菜单或上下文菜单上,选择:重构| 提取| 超类(Refactor | Extract | Superclass)。

⒊ 在提取超类对话框中:

(1)要创建一个新的超类,请选择 "提取超类" 选项并指定新超类的名称。

要重命名原始类并使其成为新创建的超类的实现,请选择 "重命名原始类",并在可能的情况下使用超类, 并指定原始类的新名称。IntelliJ IDEA 会将所有原始的类用法改为实现类的用法,只有在它仍然是必要的时候。

(2)指定新的超类所在的包。

(3)在 "组成超类的成员" 区域中,选择要移动或委派给超类的类成员。

若要在当前类中保留方法实现,并在提取的超类别中声明它为抽象,请选中 "使抽象" 复选框。

(4)在 JavaDoc 区域,选择要应用于 JavaDoc 的操作。

① 若要将其保留在其所在的位置,请选择 "As" 选项。

② 要将其复制到提取的超类,请选择 "复制" 选项。

③ 要将其移动到提取的超类,请选择 "移动" 选项。

⒋ 单击 "重构" 以继续。

如果该类在当前项目中使用,则 IntelliJ IDEA 建议将该类的实例替换为新的超类的实例。如果一个类实例引用一个未在超类中定义的成员,将不会被建议替换。