Because these keywords are implementation specific, and interfaces are designed to omit any implementation details. Furthermore, any interface fields are public static final - i.e. constant. transient has no meaning therefore, nor has volatile. You can't change the value anyway.