본문 바로가기
IT기술노트/소프트웨어공학

다형성 (Polymorphism)

by 비트코기 2021. 1. 31.

Over-loading, Over-riding


I. 동일한 이름의 메소드를 테일러링 하는 개념, 다형성의 개요

가. 다형성 (Polymorphism)의 정의

   - 여러가지 형태를 받아들일 수 있는 특징으로 동일한 이름의 메소드를 다른 객체 또는 서브클래스에 호출할 수 있는 특징

나. 다형성의 특징

   - 동적바인딩, 확장성 지원, 재사용성 지원

다. 다형성의 종류

오버로딩

(Over-loading)

클래스 내에서 동일 명의 메소드를 매개변수나 타입을 변경하여 재정의

오버라이딩

(Over-riding)

하위 클래스에서 상위 클래스에서 상속받은 메소드의 내용을 재정의


II. 오버로딩, 오버라이딩의 개념도 및 비교

가. 오버로딩, 오버라이딩의 개념도

- 동일한 인터페이스를 갖는 객체들이 그 동작은 완전히 다를 수 있게 하여, 동적바인딩을 지원하는 객체지향 기본 원칙

 나. 오버로딩, 오버라이딩의 비교

구분

Over-loading

Over-riding

개념

하나의 클래스내에서 비슷한 일을 하는 메소드를 같은 이름의 메소드로 여러개 정의하여 사용

상속 관계에 있는 두 클래스 중 하위클래스에서 상위클래스의 메소드를 재정의하여 사용

클래스다이어그램

목적

사용편의성 향상

재정의/변경

Method

동일

동일

Parameter

개수 및 타입

무관하나 개수가 동일할 경우 타입이

달라야함

동일

Return타입

무관

동일

주석

(Java기준)

미사용

@Overriding

확장성

수평적 확장성

수직적 확장성

구현사례

 

 

구현사례 설명

- 동일한 메소드 이름으로 다양한 매개변수를 사용하여 정의

- 동일한 의미의 메소드에 서로 다른 파라미터 개수, 파라미터 자료형을 제공, 여러 목적으로 사용

- Point 클래스를 상속받아 Child에서 필요에 따라 재 정의 하여 다형성 제공

 

 

반응형

'IT기술노트 > 소프트웨어공학' 카테고리의 다른 글

액티비티 다이어그램 (Activity Diagram)  (0) 2021.01.31
클래스 다이어그램 (Class Diagram)  (0) 2021.01.31
UML 2.0  (0) 2021.01.31
UML(Unified Modeling Language)  (0) 2021.01.31
객체지향 (Object-Oriented)  (0) 2021.01.31
객체지향 설계원칙  (0) 2021.01.31
모듈화 (Modularity)  (0) 2021.01.31
소프트웨어 설계 (Software Design)  (0) 2021.01.31

댓글