Subtyping is required to implement data access objects.