상세 컨텐츠

본문 제목

[Java] super

Java

by TUZA 2022. 4. 10. 00:04

본문

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' 카테고리의 다른 글

[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

관련글 더보기