super 키워드
- 하위 클래스에서 상위 클래스에 대한 참조 값을 의미한다.
- super() 는 상위 클래스의 기본 생성자를 호출한다.
- 하위 클래스에서 명시적으로 상위 클래스의 생성자를 호출하지 않으면 기본으로 super() 가 호출된다.
(상위 클래스의 기본 생성자가 존재해야한다.)
- 상위 클래스의 기본 생성자가 없는 경우 혹은 다른 생성자가 존재하는 경우 하위 클래스에서는 super 를 이용해서 명시적으로 상위 클래스의 생성자를 호출할 수 있다.
- super 는 생성된 상위 클래스 인스턴스의 참조 값을 가지므로 super를 이용하여 상위 클래스의 메서드나 멤버 변수에 접근할 수 있다.
package ch04;
public class VIPCustomer extends Customer {
double salesRatio;
private String agentID;
/*
* public VIPCustomer() {
*
* //super(); : 기본 constructor를 불러오는 키워드임.
*
* bonusRatio = 0.05; salesRatio = 0.1; customerGrade = "VIP";
*
* System.out.println("VIPCustomer() call");
*
* }
*/
public VIPCustomer(int customerID, String customerName) {
super(customerID, customerName);
customerGrade = "VIP";
bonusRatio = 0.05;
salesRatio = 0.1;
}
public String getAgentID() {
return agentID;
}
public double salesRatio() {
return salesRatio;
}
@Override
public int calcPrice(int price) {
// TODO Auto-generated method stub
bonusPoint += price * bonusRatio;
price -= (int) (price * salesRatio);
return price;
}
}
[Java] 추상클래스 (0) | 2022.04.11 |
---|---|
[Java] 메서드 재정의하기(overriding) (0) | 2022.04.10 |
[Java] 클래스 상속 (0) | 2022.04.09 |
[Java] ArrayList (0) | 2022.04.06 |
[Java] Array (0) | 2022.04.06 |