개발 공부/Java | SpringBoot

[Java/ChatGPT] Day 8: 상속(Inheritance)의 개념과 기본 사용법

dev.jelee 2025. 6. 17. 01:28

[ 학습 목표 ]

 

  • 상속의 개념을 정확히 이해하기
  • 부모 클래스와 자식 클래스의 관계를 코드로 표현할 수 있다
  • extends 키워드를 통해 코드 재사용이 가능하다는 것을 체험한다

 


[ 이론 ]

1. 상속이란?

  • 기존 클래스(부모)의 속성과 기능을 새로운 클래스(자식)가 물려받는 것

 

2. 상속의 특징

  • 중복 코드 방지
  • 코드의 재사용성과 유지보수성 향상
  • 상속받는 클래스는 부모의 필드, 메서드를 그대로 사용할 수 있음

 

3. 기본 문법

class 부모클래스 {
  필드;
  메서드;
}

class 자식클래스 extends 부모클래스 {
  자식만의 필드;
  자식만의 메서드;
}

 

4. 상속 예시

public class Person {
  String name;
  int age;

  void introduce() {
    System.out.println("안녕하세요, 저는 " + age + "살 " + name + "입니다.");
  }
}
public class Student extends Person {
  int studentId;

  void showStudentId() {
    System.out.println("학번은 " + studentId + "입니다.");
  }
}

 

5. 추가 팁

 

  • 자식 클래스는 부모 클래스의 모든 public, protected 멤버에 접근 가능
  • private 필드는 직접 접근 불가. → getter/setter를 통해 접근
  • 자바는 단일 상속만 지원 → 하나의 부모 클래스만 상속 가능

 


[ 실습 ]

✅ 실습 1: 상속 구조 만들고 사용하기

public class Main {
  public static void main(String[] args) {
    Student student = new Student();
    student.name = "홍길동";
    student.age = 21;
    student.studentId = 20231234;

    student.introduce();       // Person 클래스에서 상속받은 메서드
    student.showStudentId();   // Student 클래스의 메서드
  }
}

[ 메모 ]

  • 부모클래스 하나만 상속 받을 수 있음 (단일 상속)
  • 상속은 extends 키워드를 사용하면 됨 (예: class 자식클래스명 extends 부모클래스명)
  • 상속의 특징으로는 중복 코드 방지를 할 수 있고, 코드의 재사용성과 유지보수성이 향상한다.
  • 그리고 상속 받으면부모클래스의 필드, 메서드 그대로 사용 가능.
  • 그런데 public, protected 멤버에 접근은 가능하지만, private은 접근 불가. 접근하려면 getter/setter를 통해 접근해야 함