다형성 – 1.다형성의 의미

다형성(polymorphism)은 캡슐화(encapsulation), 상속(inheritance) 등과 함께 객체지향 프로그램을 구현하는 기본 개념입니다. 그렇다고 다형성이라는 개념이 객체지향 프로그램 언어의 전매특허는 아니며 그 이전부터 프로그램 언어마다 다양한 형태로 구현되고 있습니다.

‘위키백과’의 정의

프로그램 언어의 다형성(多形性, polymorphism; 폴리모피즘)은 그 프로그래밍 언어의 자료형 체계의 성질을 나타내는 것으로, 프로그램 언어의 각 요소들(상수, 변수, 식, 오브젝트, 함수, 함수 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질을 가리킨다. 반댓말은 단형성(monomorphism)으로, 프로그램 언어의 각 요소가 한가지 형태만 가지는 성질을 가리킨다.

일반적으로 구조화 프로그래밍(structured programming)에서는 하나의 프로그램에 존재하는 모든 함수들이 다른 함수들과 구별될 수 있는 유일한 이름을 갖도록 제한하고 있습니다. 즉 구조화 프로그래밍 언어에서의 함수는 각각 한 가지 의미로 식별되는 이름과 결합되어 있어 다른 동작을 구현하기 위해서는 다른 이름을 써야 하는 단형성(monomorphism) 체계를 가지고 있습니다. 그렇지만 구조화 프로그래밍에서도 함수 내에서만 사용되는 지역 변수의 경우는 프로그램 내의 함수가 서로 다르기만 하면 동일한 이름의 변수가 여러 개 존재할 수 있습니다.

이와 같이 구조화 프로그래밍에서도 변수의 경우에는 하나의 프로그램에 동일한 이름을 가지는 것이 2개 이상 존재할 수 있기 때문에 다형성 개념이 도입되어 있지만 하나의 프로그램에서는 동일한 이름의 함수가 단 하나만 존재할 수 있는 등 매우 제한적으로 구현되고 있다고 할 수 있습니다.

답글 남기기