object creator can create abstract objects or interfaces and return objects from their abstract methods