我正在尝试设计我的(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());
答案 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
}