I was reading a thread from CodeRanch saying that abstract methods could not be synchronized due to the fact that an abstract class cannot be instantiated, meaning no object
synchronized void foo() { body }
is defined to be equivalent to
void foo() { synchronized(this) { body } }
(if static, synchronized on the class instead of this)
this
Since an abstract method has no body, synchronized keyword on the method is undefined.
synchronized