2017-02-13 5 views
-2

Ich habe eine Frage in meinen Projekten bin, unten ist meine Klasse:Oberklasse Änderungstyp Variable SubClass

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 { 

} 

Ich brauche eine Lösung in der Klasse PlayerManager. Ich kann bekommen als:

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

Jeder kann mir helfen? Ich möchte die Funktion getPlayerById nicht umschreiben.

Dank Sie

+0

(1) In der Regel ist diese Frage zu vage, weil Sie sagen: „Ich brauche eine Lösung“, aber nie wirklich klar, was das Problem ist. (2) Auch wenn ich ahnen kann, dass Sie nach einer Möglichkeit suchen, eine "Basis" -Klasse zu erhalten, um ein Objekt einer spezifischeren Klasse zurückzugeben, kann ich dies immer noch nicht beantworten, ohne viel mehr Details über das Design von Ihr Projekt, und ohne zu wissen, warum Sie dort die "Basis" -Klassen haben und was Sie damit machen wollen. Es gibt nicht nur eine Lösung für diese Art von Fragen, aber Sie haben uns nicht annähernd genug Details gegeben. – ajb

Antwort

0

Ihre Fragen nicht in der richtigen Art und Weise, wenn Ihre Intension getPlayerById() in PlayerManager zu erhalten oder rufen Sie, Sie können es direkt aufrufen oder den getPlayerById() überschreiben, da PlayerManager ist Unterklasse von BasePlayerManager .

Super-Klasse Methoden, die öffentlich ist oder kann direkt in Unterklasse geschützt nennen

Verwandte Themen