Polymorphism, Polymorphic   다형태성, 다형성, 동질이상, 동질이형

(2022-02-24)

오버로딩 오버라이딩 비교


1. 다형태성 (Polymorphism)

  ㅇ [일반]  여러 다른 형태나 모양을 가질 수 있는 능력

  ㅇ [물질]  동일 물질이 1 이상의 다른 결정구조를 갖는 현상   ☞  동질이상
     - 압력이나 온도가 다른 조건하에서, 1 이상의 다른 결정 형태로 존재

  ㅇ [전산]  프로그램문맥에 따라 여러 다른 형태나 동작을 할 수 있는 능력


2. [객체지향]  다형태성, 다형성프로그램문맥에 따라, 다르게 반응, 행동하는 능력
      - 각 객체(Object)가 동일한 메세지이벤트에 대해서 다르게 반응, 행동하는 능력

   ㅇ 다형성 특징
      - 동일 명칭 부여 가능
         . 실제 동작은 다르더라도 개념적으로 같은 작업을 하는 메소드들에 똑같은 명칭 부여
            .. 동일 이름으로 많은 다른 유형의 데이터를 처리하거나,
            .. 하나의 코드로 여러 유형의 데이터를 처리하는 등
         . 例) 동일 연산 기호 (+) 이라도, 실수,복소수는 실제 다른 연산 방법을 씀

      - 다형성 발생 사례
         . 상속, 연산 등이 이루어질 때에 발생됨

      - 다형성 지원 시점
         . C++ 언어에서는, 컴파일시 및 실행시 모두에서 다형성을 지원

   ㅇ 객체지향 프로그래밍에서 다형성 例
      - 이질적인 요소들의 리스트를 지원할 수 있음
         . 한편, 동질의 요소들에 대한 리스트는, ☞ 배열 참조
      - 오버로딩 
      - 오버라이딩

   ㅇ [참고용어] ☞ 상속성, 동적 바인딩, Overriding, Overloading 등 참조


3. [객체지향]  오버로딩, 오버라이딩 비교오버라이딩 (Overriding)
     - (사전적 의미) 위에 덮여쓰다 : 즉, 변경(재정의)
     - 주로, 상위 클래스에서 정의된 메소드의 구현내용을 하위 클래스에서 바꾸기 위하여 사용
        . 상위 클래스로부터 상속 받은 메서드의 내용을 자신에 맞게 변경(재정의)하는 것
        . 즉, 부모 클래스에서 개략 정의된 동작을, 자식 클래스에서 좀 더 구체화시켜
              재정의(오버라이딩)하는 것
     - 상속 관계에서 만 가능
     - 조건 : 메소드명,인수타입,인수의 개수,리턴 타입 모두 동일 해야 함
     - 바인딩 방식 : 동적 바인딩 (실행시에 결정)

  ㅇ 오버로딩 (Overloading)
     - (사전적 의미) 과적(過積), 과 부하(過負荷)
     - 주로, 클래스상속시에, 기존에 없던 새로운 메서드를 추가하는 것
        . 어떤 메소드의 구현내용을 다양하게, 다른 형태로 동시에 제공키 위해 사용
        . 즉, 적당한 연산자메소드를 골라 쓸 수 있게 함
           .. 例) 함수 오버로딩, 메소드 오버로딩, 연산자 오버로딩
     - 동일 클래스 내 또는 상속 관계 둘 다 가능
     - 조건 : 메소드명 만 같으면 됨
     - 바인딩 방식 : 정적 바인딩 (컴파일시에 결정)

다형태성
   1. 다형성   2. 오버라이딩   3. 오버로딩  
객체지향 원리/특징
   1. 캡슐화   2. 상속성   3. 다형성   4. (동적)바인딩   5. 정보은닉  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"