polymorphism ; 다형성

객체지향 프로그래밍에서, polymorphism("여러 개의 형태를 가진다"는 의미의 그리스어에서 유래됨)이란 특정한 심벌이나 연산자에 대해 상황이 다르면, 그 의미도 다르게 부여할 수 있는 특성을 말한다.

예를 들면, 플러스 기호(+) 는 일반적으로 두 개의 개체를 서로 더하라는 의미이지만, 불린 검색에서는 논리적 "and"(즉, + 연산자로 나뉘어진 두 개의 단어는 검색결과에 반드시 모두 존재해야한다는 것을 의미)를 나타낸다. 또 다른 상황에서, + 기호는 두 개의 개체나, + 기호 양쪽에 있는 스트링 문자를 결합하라는 연산을 의미할 수도 있다.

주어진 연산자가 다른 연산자와 결합되었을 때 역시, 다른 의미가 주어질 수 있다. 예를 들어, C++ 언어에서는, 변수 뒤에 이어지는 "++"는 값을 1씩 증가하라는 의미가 된다. 특정 연산자의 의미는 클래스 정의의 일부로서 정의된다. 프로그래머가 클래스를 만들 수 있기 때문에, 프로그래머는 연산자가 개체의 클래스를 위해 어떻게 동작하는지를 역시 정의할 수 있다. 요컨대, 프로그래머는 컴퓨터 언어를 재 정의할 수 있다.


이 정보는 1999년 10월 11일에 수정되었습니다.
영어판(whatis.com)