Могу ли я вызвать метод предка из перегруженного метода ребенка? - PullRequest
0 голосов
/ 09 июля 2011

Я пытаюсь спроектировать свои (Java) классы, и я не уверен, как это называется - важно, что-то вроде этого:

MediaPlayer // contains play(String filePath) method

OtherPlayer // extends MediaPlayer and inherits play(String filePath) 

MyObject  // extends OtherPlayer

Проблема в том, что я хочу MyObject вызвать play, не передавая строку. MyObject содержит приватного члена, и я хочу просто позвонить,

myobject.play();

Могу ли я иметь перегрузку MyObject play(), но каким-то образом вызвать play(String filePath), используя свою приватную строку?

Edit:

Я хочу избежать этого:

myobject.play(myobject.getFilePath());

Ответы [ 3 ]

5 голосов
/ 09 июля 2011

Если play(String) является публичным / защищенным, то просто:

class MyObject extends OtherPlayer {
    ...

    public void play() {
        play(myString);
    }

    private String myString;
}
0 голосов
/ 09 июля 2011

Попробуйте это:

private void play() {
    super.play(myfilename); // calls the inherited method
}

private someMethod() {
    play(); // call your method like this
}
0 голосов
/ 09 июля 2011

Если вы имеете в виду что-то вроде

class MyObject extends OtherPlayer {

    private String myString;

    public void play(){
       play( myString );
    }

}

Тогда это прекрасно. Вы не будете перегружены play(), просто создав новый метод (разные подписи означают разные методы).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...