2017-02-13 84 views
-2

我有我的项目的问题时,贝娄是我的课:父类的变化类型的变量子类

class BasePlayer { 
    ... 
} 

class Player extend BasePlayer { 
    ... 
} 

class BasePlayerManager { 
    private List<BasePlayer> players; 

    public BasePlayer getPlayerById() { 

    } 

    public List<BasePlayer> getPlayers() { 
     return players; 
    } 
} 

class PlayerManager extend BasePlayerManager { 

} 

我需要在课堂上PlayerManager的解决方案。我可以得到:

PlayerManager playerManager = new PlayerManager(); 
Player player = playerManager.getPlayerById(); 

任何人都可以帮助我吗?我不想重写函数getPlayerById

感谢您

+0

(1)一般情况下,这个问题太模糊,因为你说“我需要一个解决方案”,但从来没有对这个问题真正清楚是。 (2)即使我猜测你正在寻找一种方法来让一个“基础”类返回一个更具体的类的对象,但我仍然无法回答这个问题,因为我不知道更多关于你的项目,而不知道你为什么在那里有'Base'类,以及你打算如何处理它们。这类问题不仅有一个解决方案,但您没有给我们足够多的细节。 – ajb

回答

0

你的问题是不是在正确的方式, 如果你的内涵得到或PlayerManager调用getPlayerById(), 可以直接调用或覆盖的getPlayerById(),因为PlayerManager是BasePlayerManager的子类。

超类方法是公共的或受保护的可直接调用子类