본문 바로가기
Java

상속(Java)

by 지민재 2022. 7. 18.
반응형
SMALL

 

상속

 



 

  • 자바 문법으로 상속을 구현할 때는 extends 예약어를 사용합니다.
  • 객체 지향 프로그램에서도 마찬가지로 B클래스가 A클래스를 상속받으면  B클래스는 A클래스의 메서드를 사용할 수 있습니다.
  • 객체 지향 프로그램은 유지보수하기 편하고 프로그램을 수정하거나 새로운 내용을 추가하는 것이 유연한데, 그 기반이 되는 기술이 상속입니다.
  • 부모 클래스(parent class)를 '상위클래스', 자식 클래스를 '하위 클래스' 등으로 부르기도 합니다.

 

 

아래 코드는 B클래스가 A 클래스를 상속합니다. 

 

class B extends A {

}

 

상속을 사용하여 고객 관리 프로그램 구현하기
package study02;

public class Tmember {
	private int TmemberID; //고객 아이디
	private String TmemberName; // 고객 이름
	private String TmemberGrade; // 고객 등급
	int bonusPoint; // 보너스 포인트
	double bonusRatio; // 적립비율

	public Tmember() {
		TmemberGrade = "SILVER"; //기본 등급
		bonusRatio = 0.01; // 보너스 포인트 기본 적립 비율
	}
	
	public int calcPrice(int price) {
		bonusPoint += price * bonusRatio; // 보너스 포인트 계산
		return price;
	}
	
	public String showCustomerInfo() {
		return TmemberName + " 님의 등급은 " + TmemberGrade + "이며, 보너스 포인트는" + bonusPoint + "입니다."; 
	}

	public int getTmemberID() {
		return TmemberID;
	}

	public void setTmemberID(int tmemberID) {
		TmemberID = tmemberID;
	}

	public String getTmemberName() {
		return TmemberName;
	}

	public void setTmemberName(String tmemberName) {
		TmemberName = tmemberName;
	}

	public String getTmemberGrade() {
		return TmemberGrade;
	}

	public void setTmemberGrade(String tmemberGrade) {
		TmemberGrade = tmemberGrade;
	}
}
package study02;

public class VIPTmember extends Tmember {
	private int agentID; //VIP 고객 상담원 아이디
	double saleRatio; // 할인율
	
	public VIPTmember() {
//		TmemberGrade = "VIP"; 상위 클래스가 private변수 이므로 오류 발생 (private 변수는 get() 메서드를 사용해 값을 가져올 수 있고, set() 메서드를 사용해 값을 지정할 수 있습니다.)
		bonusRatio = 0.05;
		
	}
	
	public int getAgentID() {
		return agentID;
	}
}
package study02;

public class TmemberTest1 {

	public static void main(String[] args) {
		Tmember customerLee = new Tmember();
		// CustomerID와 customerName은 protected 변수이므로 set() 메서드 호출
		customerLee.setTmemberID(2121001);
		customerLee.setTmemberName("지민재");
		customerLee.bonusPoint = 1000;
		System.out.println(customerLee.showCustomerInfo());
		
		VIPTmember customerKim = new VIPTmember();
		// CustomerID와 customerName은 protected 변수이므로 set() 메서드 호출
		customerKim.setTmemberID(2121002);
		customerKim.setTmemberName("이민재");
		customerKim.bonusPoint = 10000;
		System.out.println(customerKim.showCustomerInfo());

	}

}

'Java' 카테고리의 다른 글

Java - 배열을 문자열로 합치기  (0) 2023.02.03
싱글톤 패턴의 이점과 단점  (0) 2022.08.15
static 변수 (Java)  (0) 2022.07.13
this(Java)  (0) 2022.07.12
Java 복습_10  (0) 2022.07.10

댓글