2015-04-23 69 views
2

我一直在努力尝试了解下面的代码如何工作。Java界面 - 返回方法调用

我只是有:一个抽象类:

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(); 

} 

和接口:

public interface Game { 
    public void setScreen(Screen screen); 
    public Screen getInitScreen(); 
} 

我理解的是,接口方法有没有身体,因为他们说什么类可以做的,而不是如何

然后,当我打电话从延伸到屏幕抽象类的类下面的方法:

game.getInitScreen(); 

正是此方法将返回什么?一个新的屏幕?但是这个Screen类没有任何东西......没有画布,没有SurfaceView ......这种调用的意义何在?

+0

这有可能是游戏中可以有多个屏幕和确定'Game'用“初始屏幕”开始......可能 – MadProgrammer

回答

1

因为在运行时会有一个类提供Screen的具体实现。究竟是什么class是可以用类似game.getInitScreen().getClass().getName()

+0

好吧,但'Screen'包含'Game'和'游戏'包含'屏幕... ... ...似乎像鸡鸡蛋问题给我...... – MadProgrammer

+0

在Java中作为亲子关系很正常 – MaxZoom