我如何覆盖方法?

问题描述 投票:-1回答:1

我正在尝试覆盖方法init()render()release(),但无法使其正常工作。我看过有关覆盖的教程,并检查了以下内容:

  • 方法的覆盖发生在原始方法的子类内
  • 方法名称完全相同
  • 参数是相同的(在这种情况下为无)

我有2个班级:

public class Game {
    public void run() {
        System.out.println("Running!");
        init();
        render();
        release();
    }

    public void init() {}

    public void render() {}

    public void release() {}
}

public class Loader extends Game {

    @Override
    public void init() {
        System.out.println("Initializing");
    }

    @Override
    public void render() {
        System.out.println("Rendering");
    }

    @Override
    public void release() {
        System.out.println("Releasing.");
    }

}

为什么唯一的东西打印到控制台上“正在运行!”?

java overriding
1个回答
3
投票

您必须使用重写类Loader对象而不是Game对象的run()方法来获得所需的结果。

© www.soinside.com 2019 - 2024. All rights reserved.