Without polymorphism, code that handles many types fills up with if checks on which type each object is. Polymorphism lets one call, like a.sound(), run the right method based on the actual object at runtime. Use it when you loop over different kinds of objects through a common parent type, like a list of payments or shapes. Interviewers mostly ask about runtime polymorphism through overriding, so be ready to predict which method runs.