ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 매개변수의 다형성
    공부/Java 2024. 2. 28. 18:00

    매개변수의 다형성

     

    ※ 다형성의 장점

    1. 다형적 매개변수

    2. 하나의 배열로 여러종류 객체 다루기

    해당 포스팅에서는 1. 다형적 매개변수에 대해 작성하고자 한다.

     

    참조형 매개변수는 메서드 호출시, 자신과 같은 타입 또는 자손 타입의 인스턴스를 넘겨줄 수 있다.

     

    예제

    class Product {
    	int price;		// 제품가격
        	int bonusPoint;		// 보너스 점수
    }
    
    class Tv extends Product {}
    class Computer extends Product {}
    class Audio extends Product {}
    
    class Buyer {			// 물건 사는 사람
    	int money = 1000;	// 소유 금액
        	int bonusPoint = 0;	// 보너스 점수
    }

     

    다형성에 대해 배우지 않았다면,

    아래와 같이 오버로딩을 통해 Tv, Computer, Audio의 bonusPoint를 각각 멤버로 만들어야 했을 것이다.

     

    오버로딩 예제

    void buy (Tv t) {
    	money -= t.price;
        	bonusPoint += t.bonusPoint;
    }
    
    void buy (Computer c) {
    	money -= c.price;
        	bonusPoint += c.bonusPoint;
    }
    
    void buy (Audio a) {
    	money -= a.price;
        	bonusPoint += a.bonusPoint;
    }

     

    다형성을 참고해 아래와 같이 buy 메서드를 작성하면,

    아래와 같이 하나의 메서드로 여러개의 구매 품목에 대한 bonusPoint를 획득할 수 있다.

     

    다형성 예제

    void buy(Product p) {
    	money -= p.price;
        	bonusPoint += p.bonusPoint;
    }

     

    조상타입인 Product 타입을 사용한 것이다.

    물건을 추가하거나 제거하기 용이하고, 오류 가능성도 줄어들어 유지보수에 좋다.

    '공부 > Java' 카테고리의 다른 글

    추상 클래스, 추상 메서드  (0) 2024.03.01
    여러 종류의 객체를 배열로 다루기  (0) 2024.02.29
    instanceof 연산자  (0) 2024.02.26
    참조변수의 형변환  (0) 2024.02.25
    다형성 (polymorphism)  (0) 2024.02.24
Designed by Tistory.