Object composition is often advocated as a more flexible alternative to standard class inheritance since it takes place at run-time, thus permitting to specialize the behavior of objects dynamically. In this paper we present Incomplete Featherweight Java (IFJ), an extension of Featherweight Java to incomplete objects, i.e., objects that require some missing methods which can be provided at run-time by composition with another (complete) object. Incomplete object usage is disciplined by static typing, therefore the language enjoys type safety (which implies no “message-not-understood” run-time errors).