다형성(Polymorphism)
같은 이름의 메서드를 호출해도, 어떤 객체가 호출하느냐에 따라 서로 다르게 동작할 수 있는 객체지향 프로그래밍의 성질을 뜻합니다.
한눈에 보는 정의
다형성(Polymorphism)은 OOP(객체지향 프로그래밍) (객체지향 프로그래밍)에서 같은 이름의 메서드를 호출해도, 어떤 객체가 그 메서드를 실행하느냐에 따라 서로 다른 동작을 하도록 만드는 성질을 뜻합니다.
자세히 알아보기
- 예문: "'개'와 '고양이' 객체 모두 '소리내기' 메서드를 갖고 있지만, 실제로는 각각 '멍멍', '야옹'이라는 다른 결과를 내는 것이 다형성의 예다."
- 상속(Inheritance) (상속)으로 이어진 자식 클래스가 부모 클래스의 메서드를 오버라이딩(Overriding) (오버라이딩)해 각자 다르게 구현하면, 같은 이름으로 호출해도 객체별로 알맞은 동작이 실행됩니다.
- 이렇게 하면 호출하는 쪽 코드는 객체의 구체적인 종류를 몰라도 동일한 방식으로 다룰 수 있어, 코드가 더 유연하고 확장하기 쉬워집니다.
- 같은 메서드 이름이라도 전달하는 매개변수에 따라 다르게 동작하는 오버로딩(Overloading) (오버로딩) 역시 다형성의 한 형태로 분류됩니다.