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

(2019-05-27)

오버로딩 오버라이딩 비교

Top > [기술공통]
[기초과학]
[진동/파동]
[방송/멀티미디어/정보이론]
[전기전자공학]
[통신/네트워킹]
[정보기술(IT)]
[공업일반(기계,재료등)]
[표준/계측/품질]
[기술경영]
정보기술(IT) >   1. 정보기술
[전산기초]
[컴퓨터구조]
[프로그래밍]
[데이터베이스]
[소프트웨어 공학]
[운영체제]
[정보보호/보안]
[IT 기타기술]
프로그래밍 >   1. 프로그램, 프로그래밍
  2. 프로그래밍 기법
[프로그래밍 언어론]
[구조적 프로그래밍]
[객체지향 프로그래밍]
[자료표현코드]
[자료구조]
[알고리즘]
[시스템 소프트웨어]
[프로그래밍언어 종류]
[프로그래밍 기타일반]
객체지향 프로그래밍 >   1. 객체지향
  2. 객체지향 프로그래밍
  3. 메세지
  4. 생성자
  5. 접근 제한 수식자
  6. 추상 클래스
  7. 인터페이스
[객체,클래스,인스턴스]
[객체지향 원리/특징]
[다형태성]
[객체지향 모델링]
객체지향 원리/특징   1. 캡슐화
  2. 상속성
  3. 다형성
  4. (동적)바인딩
  5. 정보은닉

Top > [기술공통]
[기초과학]
[진동/파동]
[방송/멀티미디어/정보이론]
[전기전자공학]
[통신/네트워킹]
[정보기술(IT)]
[공업일반(기계,재료등)]
[표준/계측/품질]
[기술경영]
정보기술(IT) >   1. 정보기술
[전산기초]
[컴퓨터구조]
[프로그래밍]
[데이터베이스]
[소프트웨어 공학]
[운영체제]
[정보보호/보안]
[IT 기타기술]
프로그래밍 >   1. 프로그램, 프로그래밍
  2. 프로그래밍 기법
[프로그래밍 언어론]
[구조적 프로그래밍]
[객체지향 프로그래밍]
[자료표현코드]
[자료구조]
[알고리즘]
[시스템 소프트웨어]
[프로그래밍언어 종류]
[프로그래밍 기타일반]
객체지향 프로그래밍 >   1. 객체지향
  2. 객체지향 프로그래밍
  3. 메세지
  4. 생성자
  5. 접근 제한 수식자
  6. 추상 클래스
  7. 인터페이스
[객체,클래스,인스턴스]
[객체지향 원리/특징]
[다형태성]
[객체지향 모델링]
다형태성   1. 다형성
  2. 오버라이딩
  3. 오버로딩

1. 다형태성 (Polymorphism)

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

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

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


2. [객체지향]  다형태성프로그램문맥에 따라 적당한 연산자메소드를 골라 쓸 수 있게 함
      - 각 객체(Object)가 동일한 메세지이벤트에 대해서 다르게 반응, 행동하는 능력
         . 같은 연산에 대해서도 서로 다른 클래스들이 다른 동작을 할 수 있는 능력

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

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

      - 다형성 발생 사례
         . 주로, 상속성(상속 관계)에 의해 발생됨

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

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


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

  ㅇ 오버로딩 (Overloading)
     - 동일 클래스 내 또는 상속 관계 둘 다 가능
     - 주로, 클래스 상속시에, 기존에 없던 새로운 메서드를 추가하는 것
        . 어떤 메소드의 구현내용을 다양하게, 다른 형태로 동시에 제공키 위해 사용
     - 조건 : 메소드명 만 같으면 됨
     - 바인딩 방식 : 정적 바인딩 (컴파일시에 결정)


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

 
        최근수정     요약목록     참고문헌