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점입니다