Static and dynamic type systems have well-known strengthsand weaknesses. In previous work we developed a gradual type system fora functional calculus named λ?→. Gradual typing provides the benefits ofboth static and dynamic checking in a single language by allowing theprogrammer to control whether a portion of the program is type checkedat compile-time or run-time by adding or removing type annotations onvariables. Several object-oriented scripting languages are preparing toadd static checking. To support that work this paper develops Ob?<:,a gradual type system for object-based languages, extending the Ob<:calculus of Abadi and Cardelli. Our primary contribution is to show thatgradual typing and subtyping are orthogonal and can be combined in aprincipled fashion. We also develop a small-step semantics, provide amachine-checked proof of type safety, and improve the space efficiencyof higher-order casts.