하나의 메세지에 대해 각 객체가 가지고 있는 여러가지 방법으로 응답

한 가지 인터페이스나 클래스를 다양한 방식으로 구현하고 사용할 수 있는 능력을 의미합니다. 이는 코드의 유연성과 재사용성을 높여줍니다. 다형성을 통해 객체들은 동일한 메소드를 호출하더라도 각자의 고유한 동작을 수행할 수 있습니다.

예를 들어, 동물이라는 범주의 객체들이 있을 때, 각각의 동물은 소리를 내는 메소드를 가지고 있을 수 있습니다. 하지만 각각의 동물들은 다른 소리를 내게 됩니다. 이렇게 다형성을 이용하면, 동일한 메소드를 호출하더라도 다양한 동물들이 각자의 소리를 내게 됩니다.

다형성은 코드의 유지보수와 확장성에도 도움을 줍니다. 새로운 종류의 동물이 추가되더라도 기존의 코드를 수정할 필요 없이, 다형성을 통해 새로운 동물 객체를 추가할 수 있습니다. 이는 코드의 변경을 최소화하고, 유연하게 변화에 대응할 수 있게 해줍니다.