Java-强制实现一个已实现的方法

Java-强制实现一个已实现的方法,java,inheritance,methods,structure,abstract,Java,Inheritance,Methods,Structure,Abstract,我有三门课,我对它们有意见。它们被命名为:游戏场景,舞台,舞台。我的问题是,我希望在StageScene中实现initialize,但仍然强制StageOne实现它,这样每当有人使用StageOne对象(StageOne.initialize())时,都会为StageScene和StageOne运行initialize。有人知道怎么做吗 public abstract class GameScene { public abstract void initialize(); } pub

我有三门课,我对它们有意见。它们被命名为:游戏场景,舞台,舞台。我的问题是,我希望在StageScene中实现initialize,但仍然强制StageOne实现它,这样每当有人使用StageOne对象(StageOne.initialize())时,都会为StageScene和StageOne运行initialize。有人知道怎么做吗

public abstract class GameScene 
{
    public abstract void initialize();
}

public abstract class StageScene extends GameScene
{
    public abstract void initialize()
    {
        //Some code
    }
}
public class StageOne extends StageScene
{
    public void initialize()
    {
        //Some code
    }
}

您可以使用包装器执行此操作:

public abstract class StageScene extends GameScene
{
    final public void initialize()
    {
        //your initialization
        subInitialize();
    }

    protected abstract void subInitialize();
}
在儿童班:

public class StageOne extends StageScene
{
    public void subInitialize()
    {
        //Some code
    }
}

你可以把它分成两种不同的方法

public abstract class GameScene 
{
    public abstract void initializeScene();
    public abstract void initializeStage();
}

public abstract class StageScene extends GameScene
{
    public void initializeScene()
    {
        //Some code
    }
}
public class StageOne extends StageScene
{
    public void initializeStage()
    {
        //Some code
    }
}

@亚西莉亚-当然。对原始代码做了最小的更改,但你是对的。谢谢,这个问题帮助我思考了我正在处理的一个设计问题