public class Customer {
protected int customerId;
protected String cutomerName;
protected String customerGrade;
int bonusPoint;
double bonusRatio;
public Customer() {
cutomerGrade = "SILVER"; //기본 등급
bonusRatio = 0.01; //보너스 포인트 기본 적립 비율
}
public int calcPrice(int price) {
bonusPoint += price * bonusRatio; //보너스 포인트 계산
return price;
}
public String showCustomerInfo() {
return cutomerName + " 님의 등급은 " + cutomerGrade + "이며, 보너스 포인트는" + bonusPoint + "입니다.";
}
}
public class VIPCustomer extends Cutomer {
private int agentId; //VIP 고객 상담원 ID
double salseRatio; //할인율
public VIPCustomer() {
customerGrade = "VIP";
bonusRatio = 0.05;
saleRatio = 0.1;
}
public int getAgentId() {
return agentId;
}
}
protected 변수
에 접근 가능Customer()
) 수정public Customer() {
customerGrade = "SILVER";
bonusRatio = 0.01;
System.out.println("Customer() 생성자 호출");
}
VIPCustomer()
) 수정public VIPCustomer() {
customerGrade = "VIP";
bonusRatio = 0.1;
System.out.println("VIPCustomer() 생성자 호출");
}
@ Override
재정의된 메서드라는 정보 제공
VIPCustomer 클래스에서 clacPrice() 메서드를 재정의
@Override
public int calcPrice(int price) {
bonusPoint += price * bonusRatio; //보너스 정립
return price - (int)(price * saleRatio);
}