본문 바로가기
dev/JAVA

[JAVA] 매개변수의 다형성

by dev_Step 2022. 5. 30.

1. 다형적 매개변수

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

 >> 참조변수의 형변환 -> 리모컨 바꾸기 -> 사용할수 있는 멤버의 갯수 조절

 >> instanceof 연산자 -> 형변환 가능 여부 체크

 

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

상품 클래스,

상품 클래스를 상속하는 Tv, Computer, Audio 

소비자 클래스가 있을때

 

void buy(Tv t) --> 라는 매서드가 있다면 buy의 매개 변수로는 Tv 타입만 들어올수 있으므로

Computer나 Audio를 사려면

void buy(Computer c), void buy(Audio a)  매서드가 필요하다 

이럴경우 매서드가 너무 많아지고 다루기가 힘든데 이경우는 매개변수로 조상타입을 넣어주면된다

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

void buy(Product p){ }

왜냐하면 다형성에 의해서

Product  p1 = new Tv();

 ---> p1은 Tv 객체의 주소를 가지고 있으므로 p1은 결국 Tv()를 가리키고 있는 것이다.

 ---> p1.price의 경우는 Tv의 가격이 된다.

 ---> 이하 똑같은 방식이다.

Product  p2= new Computer ();

Product  p3 = new Audio ();

 

'dev > JAVA' 카테고리의 다른 글

[JAVA] 인터페이스의 다형성  (0) 2022.05.31
[JAVA] 인터페이스  (0) 2022.05.31
[JAVA] 다형성 / 참조변수간의 형변환  (0) 2022.05.30
[JAVA] 매개변수(Parameter) , 인수(argument)  (0) 2022.05.30
[JAVA] 클래스  (0) 2022.05.30