반응형
목차
개요
카카오테크캠퍼스 백엔드 과정 주차 관련 공부내용
정의와 간단한 구현 구조
클래스 간의 코드 재사용을 쉽게 만들어주는 객체 지향 프로그래밍의 핵심 기능 중 하나
자바에서는 extends 키워드를 사용해 상속을 구현 할수 있고 저번에 배웠었던 클래스의 접근 제한자인 **private**와 protected 를 이용해서 접근 범위를 구체적으로 지정해서 더욱 상세한 구현이 가능하다.
class Parent {
private int privateVar;
protected int protectedVar;
private void privateMethod() {
// 이건 외부, 자식 클래스에서 접근이 불가능하다.
}
protected void protectedMethod() {
// 이 클래스 내부와 자식 클래스에서만 접근이 가능하다.
}
}
class Child extends Parent {
void childMethod() {
// 여기에서는 privateVar에 접근할 수 없다.
// protectedVar과 protectedMethod()에만 접근할 수 있다.
}
}
아래는 강의중 예시로 들어준 멤버쉽기능 구현을 상속을 이용한 작성한 코드이다.
public class VIPCustomer extends Customer{
private int agentID;
double salesRatio;
public VIPCustomer(int customerID, String customerName) {
super(customerID, customerName);
customerGrade = "VIP";
bonusRatio = 0.05;
salesRatio = 0.1;
//System.out.println("VIPCustomer(int, String) 생성자 호출");
}
@Override
public int calcPrice(int price) {
bonusPoint += price * bonusRatio;
return price - (int)(price * salesRatio);
}
public int getAgentID() {
return agentID;
}
@Override
public String showCustomerInfo() {
return customerName + "님의 등급은 " + customerGrade +
"이며, 보너스 포인트는 " + bonusPoint + "입니다";
}
}
extends 로 부모 클래스를 상속받아서 가져왔다.
super를 이용하여 상위 클래스의 메서드나 멤버 변수에 접근하여 상위 클래스 참조 값을 받아왔다.
@Overriding 을 통해서 상위 클래스에 정의된 메서드 구현내용을 하위 클래스에 맞게 재정의하였다.
이와 같이 부모 클래스를 상속받은 자식 클래스에서의 메소드를 이용할때 특정 코드르 바꿔서 정의하는 것이 메서드 재정의라고 부른다.
2023.04.15 - [KakaoTechCampus] - Java기초[6] 오버로딩과 오버라이딩의 차이점
IS-A관계(상속), Has-A 관계(연관)
IS-A 관계
- 일반적인 개념과 구체적 개념의 관계
- 상위, 하위 클래스가 있다.
- 개는 동물이다. 고양이는 동물이다.
HAS-A 관계
- 클래스가 다른 클래스를 포함하는 관계
- 상위 하위 클래스의 개념이라기 보다는 구성품 객체가 다른 클래스의 인스턴스로 들어간다.
- 차에는 엔진이 들어있다. 엔진은 피스톤과 실린더로 이루어져있다.
이 밖에도 객체 지향 프로그램에는 다향한 객체 간 관계들이 존재한다.
2023.04.28 - [Java] - 객체지향에서의 클래스 간의 관계[IS, HAS, USES, REALIZE,DEPEND-ON]
'미사용 > KakaoTechCampus' 카테고리의 다른 글
Java기초[9] 전략&템플릿 메서드 패턴 (0) | 2023.04.28 |
---|---|
Java기초[8] 명시적&묵시적 형변환 (0) | 2023.04.28 |
[카테캠] 백엔드 과정 1기 웰컴키트(굿즈) 리뷰 (0) | 2023.04.18 |
Java기초[6] 오버로딩과 오버라이딩의 차이점 (0) | 2023.04.15 |
Java기초[5] 예제로 알아보는 static 변수, 싱글톤 패턴 (0) | 2023.04.13 |