다형성
class Product{
int price;
int bonusPoint;
public Product(int price) {
this.price=price;
bonusPoint=(int)(price/10.0); //보너스점수는 제품가격의 10%
}
}
class Tv extends Product{
Tv(){
//부모클래스의 생성자 product(int price)를 호출
super(100); //tv의 가격
}
//object클래스의 tostring()을 오버라이딩
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+"을/를 구입하셨습니다");
}
}
public class Book_368_7_21 {
public static void main(String[] args) {
Buyer b=new Buyer();
b.buy(new Tv()); //티비 구입
b.buy(new Computer()); //컴퓨터 구입
System.out.println("현재 남은 돈: "+b.money+"만원");
System.out.println("현재 보너스점수: "+b.bonusPoint+"점");
}
}
//결과
Tv을/를 구입하셨습니다
Computer을/를 구입하셨습니다
현재 남은 돈: 700만원
현재 보너스점수: 30점
'자바의 정석 문제풀이' 카테고리의 다른 글
Book_364_7_18 (0) | 2021.08.19 |
---|---|
Book_366_7_20 (0) | 2021.08.19 |
Book_227_5_23 (0) | 2021.08.10 |
Book_218_5_19(2차원배열+과목별 점수) (0) | 2021.08.10 |
Book_197_5_06(배열의 최대값,최소값) (0) | 2021.08.09 |