Static methods cannot be overridden. But Abstract methods have to be overridden in the extending class (unless the class is not Abstract) to provide the definition. So static and abstract cannot go together. An useful article: https://coderanch.com/how-to/java/OverridingVsHiding