2015-04-23 52 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