You can't use other modifiers besides public, protected, and private with abstract because they are implementation details, not client interface specifications.

What if a better implementation of your method used individual synchronized blocks of code or you found a thread-safe algorithm that didn't need locks at all? Why force the entire method to be synchronized by inheritance?