IntelliJ IDEA提取超類

2018-11-06 10:36 更新

提取超類重構有兩個選項:

  • 根據(jù)現(xiàn)有的類創(chuàng)建一個超類。
  • 重命名原始類,以便它成為新創(chuàng)建的超類的實現(xiàn)。在這種情況下,IntelliJ IDEA 會將所有原始類的用法更改為在可能的情況下使用超類。

原始類中的字段和方法可以移動到超類。同樣,對于一個方法,你只能傳遞方法聲明,而不是在超類中將方法聲明為抽象的實現(xiàn)。因此,您將擁有超類和從超類繼承的原始類。

提取超類重構前

// 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;

提取超類

  1. 在其中一個視圖中選擇所需的類,或者只是在編輯器中打開它。
  2. 在主菜單或上下文菜單上,選擇:重構| 提取| 超類(Refactor | Extract | Superclass)。
  3. 在提取超類對話框中:
    • 要創(chuàng)建一個新的超類,請選擇 "提取超類" 選項并指定新超類的名稱。

      要重命名原始類并使其成為新創(chuàng)建的超類的實現(xiàn),請選擇 "重命名原始類",并在可能的情況下使用超類, 并指定原始類的新名稱。IntelliJ IDEA 會將所有原始的類用法改為實現(xiàn)類的用法,只有在它仍然是必要的時候。

    • 指定新的超類所在的包。
    • 在 "組成超類的成員" 區(qū)域中,選擇要移動或委派給超類的類成員。

      若要在當前類中保留方法實現(xiàn),并在提取的超類別中聲明它為抽象,請選中 "使抽象" 復選框。

    • 在 JavaDoc 區(qū)域,選擇要應用于 JavaDoc 的操作。
      • 若要將其保留在其所在的位置,請選擇 "As" 選項。
      • 要將其復制到提取的超類,請選擇 "復制" 選項。
      • 要將其移動到提取的超類,請選擇 "移動" 選項。
  4. 單擊 "重構" 以繼續(xù)。

    如果該類在當前項目中使用,則 IntelliJ IDEA 建議將該類的實例替換為新的超類的實例。如果一個類實例引用一個未在超類??中定義的成員,將不會被建議替換。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號