The button has no relation to the player's sprite, as such it shouldn't directly move the player sprite, instead the player should expose a function that internal moves its sprite.
Then as for the button "connecting" to the player, there are many approaches possible. A common style is to work with callbacks, so you'd pass in a lambda or similar, but that solution might be a bit too complex if you're no familiar with it.
As such as alternative, you could pass in the player to the button constructor, so the button knows about the player and can react to it.