Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java接口-方法调用返回_Java_Interface - Fatal编程技术网

Java接口-方法调用返回

Java接口-方法调用返回,java,interface,Java,Interface,我花了几天时间试图理解下面的代码是如何工作的 我只是有:一个抽象类: public abstract class Screen { protected final Game game; public Screen(Game game) { this.game = game; } public abstract void update(float deltaTime); public abstract void paint(float

我花了几天时间试图理解下面的代码是如何工作的

我只是有:一个抽象类:

public abstract class Screen {

    protected final Game game;

    public Screen(Game game) {
        this.game = game;
    }

    public abstract void update(float deltaTime);
    public abstract void paint(float deltaTime);
    public abstract void pause();
    public abstract void resume();
    public abstract void dispose();
    public abstract void backButton();

}
game.getInitScreen();
和一个接口:

public interface Game {
    public void setScreen(Screen screen);
    public Screen getInitScreen();
}
我理解接口方法没有主体,因为它们说类可以做什么,而不是如何做

然后,当我从扩展Screen抽象类的类调用下面的方法时:

public abstract class Screen {

    protected final Game game;

    public Screen(Game game) {
        this.game = game;
    }

    public abstract void update(float deltaTime);
    public abstract void paint(float deltaTime);
    public abstract void pause();
    public abstract void resume();
    public abstract void dispose();
    public abstract void backButton();

}
game.getInitScreen();

这个方法将返回什么?新屏幕?但是这个Screen类上没有任何内容……没有画布,没有SurfaceView……这样的调用有什么意义?

因为,在运行时,将有一个类提供一个
屏幕的具体实现。确切地说,
是什么可以用类似于
游戏的东西来确定。getInitScreen().getClass().getName()

好的,但是
Screen
包含
Game
Game
包含
Screen
…对我来说似乎是一个鸡毛蒜皮的问题…在Java中作为父子关系非常正常游戏可能有多个屏幕并且
Game
以“初始屏幕”开始。。。可能地