Java

[Java, 객체지향] 다형성이란? (Polymorphism)

15호의 개발자 2021. 8. 11. 15:50
반응형

[Java, 객체지향] 다형성이란? (Polymorphism)

 

 

다형성이란?

 

다형성은 하나의 코드가 여러 자료형으로 구현되어 실행되는 것이다.

즉, 같은 코드에서 여러 실행 결과가 나오는 것,

조상 타입 참조 변수로 자손 타입 객체를 다루는 것이다.

 

ex.

Customer c = new VIPCustomer();

조상 타입(Customer) 참조 변수(c)로

자손 타입(VIPCustomer) 객체를 다룸

 

다형성은 정보은닉, 상속과 더불어 객체지향 프로그래밍의 가장 큰 특징 중 하나이며

객체지향 프로그래밍의 유연성, 재활용성, 유지보수성에 기본이 되는 특징이다.

 

 

참조변수가 조상 타입일 때와 자손 타입일 때의 다른 점은,

사용할 수 있는 멤버의 개수이다.

 

 

 

다형성을 사용하는 장점

 

다양한 여러 클래스를 하나의 자료형으로 선언하거나

형변환하여 각 클래스가 동일한 메서드를 오버라이딩한 경우,

하나의 코드로 다양한 구현을 실행할 수 있다.

 

유사한 클래스가 추가되는 경우 유지보수에 용이하고

각 자료형마다 다른 메서드를 호출하지 않으므로 코드에서 많은 if문이 사라진다.

 

구체적으로 말하자면, 아래와 같다.

 

1. 매개변수의 다형성

참조형 매개변수는 메서드 호출 시,

자신과 같은 타입이나 자손 타입의 인스턴스를 넘겨줄 수 있다.

 

2. 하나의 배열에 여러 종류의 객체를 저장할 수 있다

보통은 하나의 배열에는 한 종류의 객체만 저장할 수 있다.

하지만 다형성을 이용하면

하나의 배열에 여러 종류의 객체를 저장할 수 있다.

즉, 조상 타입의 배열에 자손 타입의 객체를 담을 수 있다.

 

 

(출처: 유튜브 남궁성의 정석코딩)

반응형