반응형
ch7-27 매개변수의 다형성 (장점)
1) 다형적 매개변수
2) 하나의 배열로 여러 종류 객체 다루기
- 참조형 매개변수는 메서드 호출시, 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있다.
- 참조형 매개변수는 메서드 호출시, 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있다.
(1) Tv t 조상 = new SmartTv(); 자손
(2) 참조변수의 형변환, 사용 가능한 멤버 갯수 조절 - 리모콘 바꾸기
(3) instanceof 연산자 - 형변환 가능여부 확인
다형성의 장점
메서드 하나로, Product p1 = new Tv(); 와 같이 여러 객체를 매개변수로서 사용할 수 있다.
참조변수와 문자열을 결합할 때는
p > p.toString 과 같이 변환한다.
package ch07;
class Product {
int price;
int bonuspoint;
Product(int price){
this.price = price;
this.bonuspoint = (int)(price*0.1);
}
}
class Tv extends Product {
Tv() {
super(100);
}
public String toString() {
return "TV";
}
}
class Computer extends Product {
Computer() {
super(200);
}
public String toString() {
return "Computer";
}
}
class Buyer {
int money = 1000;
int bonusPoint = 0;
void buy(Product p) {
if(money < p.price) {
System.out.println("돈이 부족해서 구매할 수 없습니다.");
return;
}
money -= p.price;
bonusPoint += p.bonuspoint;
System.out.println("구매한 제품은 "+ p + "입니다.");
System.out.println("현재 남은 돈은 "+ money + " 원 입니다. ");
System.out.println("포인트 잔액은 "+ bonusPoint + "점입니다.");
}
}
public class Ex7_8 {
public static void main(String args[]) {
Buyer b = new Buyer();
b.buy(new Tv());
}
}
반응형
'자바의정석' 카테고리의 다른 글
[자바의 정석 - 기초편] ch7-31,32 추상 클래스, 추상 메서드 (0) | 2022.03.22 |
---|---|
[자바의 정석 - 기초편] ch7-29,30 여러 종류의 객체를 배열로 다루기 (0) | 2022.03.21 |
[자바의 정석 - 기초편] ch7-26 instanceof 연산자 (0) | 2022.03.21 |
[자바의 정석 - 기초편] ch7-24,25 참조변수의형변환(2) (0) | 2022.03.21 |
[자바의 정석 - 기초편] ch7-24,25 참조변수의 형변환(1) (0) | 2022.03.20 |