java - Child class method not overriding the method of the same signature in parent -
why child class method not overriding method of same signature in parent class?
summary:
i have class playerpaddle extends abstract class paddle, extends abstract class actor (the context here pong game). paddle , playerpaddle both have method same signature:
public void movedown() the intention have playerpaddle movedown method override of paddle. problem here when call this.movedown() inside playerpaddle, movedown method of paddle called.
the details:
breakpoints set on movedown() in paddle tripped, while breakpoints on movedown() in playerpaddle never trip. tried @override on playerpaddle movedown method, still calls paddle movedown method.
the context:
the goal playerpaddle objects move up/down @ different speed other paddle objects. same problem occurs moveup method well.
code below:
abstract public class actor { public void releasedevent(keyevent e) { } } abstract public class paddle extends actor { public void movedown() { // method called body.setvel(0, game.dx / 10.); } } public class playerpaddle extends paddle { @override public void movedown() { // method never gets called body.setvel(0, game.dx ); } public void receiveevent(keyevent e) { if (e.getkeycode() == keyevent.vk_up) { this.moveup(); } else if (e.getkeycode() == keyevent.vk_down) { this.movedown(); // want call movedown() inside playerpaddle } } } i happy provide clarification.
see simple case, works:
public class test{ public static void main(string args[]) { new playerpaddle().receiveevent(); } } abstract class actor { public void releasedevent(keyevent e) { } } abstract class paddle extends actor { public void movedown() { // method called system.out.println("paddle"); } } class playerpaddle extends paddle { @override public void movedown() { // method never gets called system.out.println("playerpaddle"); } public void receiveevent() { this.movedown(); // want call movedown() inside playerpaddle } } it calls playerpaddle one.
Comments
Post a Comment