풀스택 백엔드 2026.04.29

syyu21b·2026년 4월 29일

풀스택 - 백엔드

목록 보기
11/49
post-thumbnail

[SECTION10. 상속(Inheritance)]

상속(Inheritance) = 기존 클래스를 기반으로 새로운 클래스를 만드는 것


상속에서의 생성자

  • 자식 객체를 생성하면 부모 생성자가 먼저 실행되고, 그 다음 자식 생성자가 실행됨

-예시:

class Parent {
public Parent() {
System.out.println("부모 생성자 호출");
}
}

class Child extends Parent {
public Child() {
System.out.println("자식 생성자 호출");
}
}

-결과:

부모 생성자 호출
자식 생성자 호출


오버라이딩(Overriding) = 부모에게 물려받은 메소드를 자식 클래스에서 다시 정의하여 덮어쓰는 것

-예시:

class Animal {
void sound() {
System.out.println("동물이 소리를 냅니다.");
}
}

class Dog extends Animal {
@Override
void sound() {
System.out.println("멍멍!");
}
}

-결과:
멍멍!


접근 제한자(Access Modifier)와 상속

제한자자식 접근 가능 여부설명
public가능어디서나 접근 가능
protected가능같은 패키지 + 자식 클래스에서 접근 가능
(default)경우에 따라같은 패키지에서만 접근 가능
private불가능자식도 접근 불가(완전 내부 전용)

2차 상속

자식의 자식도 상속 가능

class A {}
class B extends A {}
class C extends B {} // 2차 상속

A의 기능을 B가 물려받고, B의 기능을 C가 다시 물려받음.


문제

Animal 클래스를 상속받아 Dog, Cat 클래스를 만들고 각각 다른 소리를 출력하시오.

✔️ 요구사항

  • Animal: sound() 메소드
  • Dog: sound() 오버라이딩 → "멍멍!"
  • Cat: sound() 오버라이딩 → "야옹!"
  • Exam02에서 출력

정답

0개의 댓글