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 } } ```
A. `extends` 키워드 사용법이 잘못되었다
B. `private` 변수는 상속되지 않는다
C. `protected` 변수는 상속되지 않는다
D. 메소드명이 잘못되었다

정답: 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 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.