We define a predicate-transformer semantics for an object-oriented language
that includes specification constructs from refinement calculi. The langua
ge includes recursive classes, visibility control, dynamic binding, and rec
ursive methods. Using the semantics, we formulate notions of refinement. Su
ch results are a first step toward a refinement calculus.