Text this: Dynamic Dispatch for Method Contracts Through Abstract Predicates