abstract class MondaiPanel extends Panel{...} class TasizanPanel extends MondaiPanel{..差分を書く.} class TokutenPanel extends Panel{ TokutenPanel (SansuApplet sa){...} } abstract class SansuApplet extends Applet{ TokutenPanel tokutenPanel; MondaiPanel mondaiPanel; .... public void init(){ tokutenPanel = new TokutenPanel(this); mondaiPanel = creatMondaiPanel(this); //ここを書き換えるのが重要 } protected abstract MondaiPanel creatMondaiPanel(SansuApplet aplet); // createMondaiPanel を abstract として作っておく } class TasizanApplet extends SansuApplet{ protected MondaiPanel createMondaiPanel(SansuApplet applet){ return new TasizanPanel(applet); //ここで実体を書いて指定すればスーパークラスの //mondaiPanelにTasizanPanelが入っていく } }