我可以从孩子的重载方法中调用祖先的方法吗?

时间:2011-07-09 19:23:27

标签: java inheritance

我正在尝试设计我的(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)吗?

编辑:

我想避免这样做:

myobject.play(myobject.getFilePath());

3 个答案:

答案 0 :(得分:5)

假设play(String)是公开/受保护的,那么只需:

class MyObject extends OtherPlayer {
    ...

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

    private String myString;
}

答案 1 :(得分:0)

如果你的意思是

class MyObject extends OtherPlayer {

    private String myString;

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

}

然后那完全没问题。你不会重载 play(),只是创建一个新方法(不同的签名意味着不同的方法)。

答案 2 :(得分:0)

试试这个:

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

private someMethod() {
    play(); // call your method like this
}