Why Java Does Not Allow Overriding A Static Method