As an extension to Fredrik's answer, he also indicates what behavior should be changed.
You can usually override a method (if this method is not final and the class is not final), but in practice it can be very difficult if the class is not specifically designed for changes. It is possible that existing methods assume some kind of behavior of a method that you override, which is not specified (this happens) and which you do not provide.
By explicitly declaring a method abstract, you express the intention that the method will be implemented by someone else. It also usually means that the documentation of the abstract method is a bit more complete regarding the expected behavior.
source share