본문 바로가기

언어공부/Java

자바 매개변수의 다형성

자바 매개변수의 다형성에 대해서 알아보자.

매개변수의 다형성

다형성이란 여러가지 형태를 가질 수 있는 능력을 의미한다. 전 포스팅에서는 참조변수의 다형성에 대해서 알아보았다. 참조변수의 다형적인 특성은 메소드의 매개변수에도 적용된다.

 

ex) 아래의 예제는 매개변수의 다형성을 적용한 예제이다.

여기서 Buyer클래스의 buy메소드가 매개변수의 다형성으로 볼 수 있다. buy(Tv t), buy(Computer c)로 각각의 제품마다 buy메소드를 만드는 것 보다 매개변수에 다형성을 적용하여 buy(Product p)로 하나의 메소드에서 간단히 처리할 수 있다. 

 

매개변수가 Product타입의 참조변수라는 것은, 메소드의 매개변수로 Product클래스의 자손타입의 참조변수면 어느 것이나 매개변수로 받아들일 수 있다는 뜻이다. 그리고 Product클래스에 price와 bonusPoint가 선언되어 있기 때문에 참조변수 p로 인스턴스의 price와 bonusPoint를 사용할 수 있다.

 

앞으로 다른제품 클래스를 추가할 때 Product클래스를 상속받기만 하면, buy(Product P)메소드의 매개변수로 받아들여질 수 있다. 이것이 매개변수의 다형성이다.

 

출력화면