正在调用抽象方法中常用的方法吗?

问题描述:

我目前正在开发一个菜单结构,其中包括一个 主类,一个Menu类和一个MenuEntry类。正在调用抽象方法中常用的方法吗?

Menu类是抽象的,但只有一个抽象方法。 MenuEntry也有一个抽象方法。

主类有像“关机”的方法,“pushState的”“popState”等

它是好/通用调用菜单/ MenuEntry的instatiation内关断()从主类?

public class Main 
{ 
    public void init() 
    { 
    Menu m = new Menu() 
    { 
     public void abortAction() 
     { 
     shutDown(); 
     } 
    }; 
    m.addEntry(new MenuEntry() 
    { 
     public void activate() 
     { 
     start(); 
     } 
    }); 
    } 
    public void shutDown() 
    { 
    //cleanup etc. 
    } 

    public void start() 
    { 
    //start here. 
    } 
    /* 
    * other methods 
    */ 


} 

public abstract class Menu 
{ 
    //... 
    void addEntry(MenuEntry e) 
    { 
    //... 
    } 
    public abstract void abortAction(); 
} 




public abstract class MenuEntry 
{ 
    //... 
    public abstract void activate(); 
} 

这多少看起来丑陋,但。

+0

对你的标题的评论:抽象方法(与'abstract'关键字的方法)没有任何代码(不允许,如果你尝试编译失败),所以你不能做任何事情。 – Andreas

+0

当然,但我不知道如何命名它。 – Raildex

如果你想在shutDownstart这是完全正常的代码重用,

但是,不要指望有这些方法里面的菜单或MenuEntity的内部状态(这些方法将有机会获得的状态Main类),除非您传递这些方法的引用。

除此之外,我认为这很好。但这取决于你想做什么,