Java - 强制执行已实现的方法

标签 java inheritance methods structure abstract

我有三个类有问题。它们被命名为:GameScene、StageScene、StageOne。我的问题是我想在 StageScene 中实现初始化,但仍然强制 StageOne 实现它,这样每当有人使用 StageOne 对象 (stageOne.initialize()) 时,StageScene 和 StageOne 都会运行初始化。任何人都知道如何做到这一点?

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
    }
}

关于Java - 强制执行已实现的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9675694/

相关文章:

java - Glassfish 4 与 EMF Texo - JPA 无持久性提供程序

java - 口译员会出错吗?

oop - 深度继承层次结构的替代方案?

java - 空闲应用程序的堆大小随时间变小的含义

java - Hadoop 单例模式的使用

python - 如何使用 Python 创建具有属性的元组?

java - Kotlin中如何从泛型继承接口(interface)?

java - if else 语句没有停止问题

methods - 在 defmethod 中使用 Common Lisp 用户定义类型

JavaScript 每 4 秒运行一次函数多次