JAVA
객체지향 매개변수의 다형성 예제
연93
2022. 9. 26. 16:20
class Product {
int price; // 제품의 가격
int bonusPoint; // 제품구매 시 제공하는 보너스 점수
Product(int price){
this.price = price;
bonusPoint = (int)(price/10.0); //보너스 점수는 제품가격의 10%
}
}
class Tv1 extends Product{
Tv1(){
//조상클래스의 생성자 Product(int price)를 호출한다.
super(100); //Tv의 가격을 100만원으로 한다.
}
// Object클래스의 toString()을 오버라이딩한다.
puvlic String toString() { return "Tv"; }
}
class Buyer { // 고객 물건을 사는 사람
int money = 1000; // 소유금액
int bonusPoint = 0;// 보너스 점수
void buy(Product p) { //new Tv1 , new Computer 들어갈수있음
if(money < p.price) {
System.out.println("잔액이 부족하여 물건을 살 수 없습니다.");
return;
}
money -= p.price; // 가진 돈에서 구입한 제품의 가격을 뺀다.
bonusPoint += p.bonusPoint; // 제품의 보너스 점수를 추가한다.
System.out.println(p + "을/를 구입하셨습니다.");
}
}
class Ex7_8{
public static void main(String arg[]) {
Buyer b = new Buyer();
b.buy(new Tv1()); // bye(Product p)
b.buy(new Computer()); // bye(Product p)
System.out.println("현재 남은 돈은" + b.money + "만원입니다.");
System.out.println("현재 남은 보너스 점수는" + b.bonusPoint + "점입니다");
}
}
Tv를 구입하셨습니다
computer를 구입하셨습니다
현재 남은 돈은 700만원 입니다
현재 보너스 점수는 30점입니다