public void run(){
//This method has a lot of code but it calls the method tick 60 times a second and
//a method called render as many times as it can
//Other methods are involved to call this but I took them out because there is not problem with them
}
public void tick(){
tickB();
//Other code I don't want to get overwritten
}
public void render(){
renderB();
//Other code I don't want to get overwritten
}
public void tickB(){System.err.println("Not overwriting");}
public void renderB(){System.err.println("Not overwriting");}
如果我运行该代码,我会收到错误消息,但是当我将此项目添加到另一个项目,并扩展MainResources(此类)时,它将无法正常工作。
其他项目
public class Main extends MainResources{
public void tickB(){
System.out.println("It worked!");
}
public void renderB(){
System.out.println("It worked!");
}
}
我的问题是我没有得到“它工作!”,我添加的所有代码都被忽略了。我尝试添加@Override,但这也行不通。我也检查了一切,据我所知,一切都正常运行。
答案 0 :(得分:0)
如果您直接拨打tickB
或renderB
,那么唯一时间您将获得被覆盖的消息。每隔一段时间,你就会在超类上调用方法。
目前,您的被覆盖方法正在按预期工作。
这里要注意的重要(和有趣)事情是System.err
与System.out
不同,写一个是独立于写另一个。
所以,如果你写这个......
new MainResources().render();
new Main().render();
new Main().tickB();
new Main().renderB();
...但请参阅此而不是......
It worked!
It worked!
It worked!
Not overwriting
这只是写入两个输出流的本质。 (它实际上是MainResources
件出现了问题。)