在 JBuilder 中,將欄位與方法在類繼承體系中上推或下移操作極其直觀。以下以經典繼承結構為例演示:

圖 15 類的繼承類圖
Animal 為 Cat 與 Horse 的父類,包含兩個欄位與一個方法。可選擇性地將欄位下移至特定子類,或為 Animal 提煉超類與介面。
打開 Animal.java,游標定位於 howl() 方法,Ctrl+Shift+R → Push Down Method:

圖 16 下移方法
Cat,僅下移至 Horse。注意:howl() 內引用了 private int volume,下移後該欄位自動變為 protected 以供子類存取。
上推與下移互為逆操作。保存並重新編譯後,打開 Horse.java,游標置於 howl(),Ctrl+Shift+R → Pull Up Method:

圖 17 上推方法
若上推方法引用了其他方法,這些被引用方法會列在 Select dependent members to moves 列表,通常需一併上移至父類。面向對象特性在於子類共享父類代碼,發現共享代碼時應及時上推以提升復用性。
Animal 類包含兩個欄位:
protected int weight ;
protected int volume = weight ;
欲將 volume 下移至 Cat,游標定位於 volume,Ctrl+Shift+R → Push Down Field:

圖 18 下移欄位
Horse,僅下移至 Cat。weight),預設一併下移。確定後完成下移。編譯專案,打開 Horse.java 執行反操作:上推欄位至 Animal。
游標定位於 Horse.java 的 volume,Ctrl+Shift+R → Pull Up Field:

圖 19 上推欄位
提示:JBuilder 上推欄位不會像下移那樣列出關聯欄位,僅將聲明行上推。若定義行引用了其他欄位(如 volume = weight),上推後可能產生語法錯誤,需手動修正。
當多個類具備相同功能時,可提煉超類。隨需求變更,需關注鳥類 Bird,在 Bird 與 Animal 之上抽象出 Creature 超類:
打開 Animal.java,游標置於類名,Ctrl+Shift+R → Introduce Superclass for "Animal":

圖 20 提煉超類對話框
指定超類名 Creature 及包名,確定後 JBuilder 建立超類並調整繼承關係:
// Creature 超類
package myrefactor ;
public class Creature {
public Creature() { }
}
// Animal 調整為繼承 Creature
package myrefactor ;
public class Animal extends Creature { … }
因 Creature 未編譯,編輯器會報語法錯誤。可透過重構資訊窗口的編譯按鈕
編譯相關類消除錯誤。
為動物定義共同習性,可提煉介面。打開 Animal.java,游標置於類名,Ctrl+Shift+R → Extract Interface from Class "Animal":

圖 21 提煉介面對話框
Habitable確定後生成介面並使 Animal 實現之:
// Habitable 介面
package myrefactor ;
public interface Habitable {
public void howl() ;
}
// Animal 實現介面
package myrefactor ;
public class Animal extends Creature implements Habitable { … }
若僅提煉單一方法至介面,可直接在方法名上 Ctrl+Shift+R → Extract to Interface Method 完成。