[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("멍멍!");
}
}
-결과:
멍멍!
| 제한자 | 자식 접근 가능 여부 | 설명 |
|---|---|---|
| public | 가능 | 어디서나 접근 가능 |
| protected | 가능 | 같은 패키지 + 자식 클래스에서 접근 가능 |
| (default) | 경우에 따라 | 같은 패키지에서만 접근 가능 |
| private | 불가능 | 자식도 접근 불가(완전 내부 전용) |
자식의 자식도 상속 가능
class A {}
class B extends A {}
class C extends B {} // 2차 상속
A의 기능을 B가 물려받고, B의 기능을 C가 다시 물려받음.
Animal 클래스를 상속받아 Dog, Cat 클래스를 만들고 각각 다른 소리를 출력하시오.

