The question in the title says it all.
To the best of my understanding, the only way to deposit ether into a contract is by calling a
payable function, and set
msg.value larger than 0 (and of course, the function should complete successfully without reverting).
But if there are no
payable functions to begin with, is it ever possible that the ether balance of the contract will be larger than 0?