2011-07-09 21 views
0

我想我的设计(Java)的类,我不知道这是什么called--必不可少它是这样的:我可以从一个孩子的重载方法调用一个祖先的方法吗?

MediaPlayer // contains play(String filePath) method 

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

MyObject // extends OtherPlayer 

is--我想MyObject调用播放,而没有经过问题英寸MyObject字符串中包含私有成员,我想简单地调用,

myobject.play(); 

我能为MyObject超载play()但不知何故,利用其私人字符串调用play(String filePath)

编辑:

我想避免这样做:

myobject.play(myobject.getFilePath()); 
+0

在任何祖先的声明戏? – emboss

+0

play(String filePath)在所有其他祖先中,但没有play() –

回答

6

假设play(String)是公共/保护,那么干脆:

class MyObject extends OtherPlayer { 
    ... 

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

    private String myString; 
} 
+0

所以即使新的play()重载旧的play,旧的play(string name)仍然有效?嘎我觉得哑巴! –

+0

不要觉得笨拙@Google你有所有的答案:) –

0

如果你的意思是这样

class MyObject extends OtherPlayer { 

    private String myString; 

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

} 

那很好。你不会超载play()虽然,只是创建一个新的方法(不同的签名意味着不同的方法)。

0

试试这个:

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

private someMethod() { 
    play(); // call your method like this 
} 
相关问题