Java - 문제 미리보기
문제 2279
medium
다음 코드에서 컴파일 에러가 발생하는 이유는 무엇인가요?
```java
class Parent {
private String name = "부모";
protected int age = 50;
}
class Child extends Parent {
public void showInfo() {
System.out.println(name); // 라인 A
System.out.println(age); // 라인 B
}
}
```
정답: B
⦁ 접근 제어자와 상속:
• `private`: 선언된 클래스 내에서만 접근 가능, 상속되지 않음
• `protected`: 같은 패키지와 하위 클래스에서 접근 가능, 상속됨
• `public`: 모든 곳에서 접근 가능, 상속됨
⦁ 에러 발생 지점:
• 라인 A: `name`은 `private`이므로 `Child` 클래스에서 접근 불가
• 라인 B: `age`는 `protected`이므로 정상적으로 접근 가능
⦁ 해결 방법:
```java
class Parent {
protected String name = "부모"; // private → protected
protected int age = 50;
}
```
⦁ 실무 팁: 상속을 고려한다면 `private` 대신 `protected`를 사용하세요
💡 학습 팁
이 문제를 포함한 Java 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.