Java-强制实现一个已实现的方法
我有三门课,我对它们有意见。它们被命名为:游戏场景,舞台,舞台。我的问题是,我希望在StageScene中实现initialize,但仍然强制StageOne实现它,这样每当有人使用StageOne对象(StageOne.initialize())时,都会为StageScene和StageOne运行initialize。有人知道怎么做吗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
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
}
}
@亚西莉亚-当然。对原始代码做了最小的更改,但你是对的。谢谢,这个问题帮助我思考了我正在处理的一个设计问题