24-3아래 Java 프로그램이 출력하는 값을 적으시오.class Pa… | 2024년 정보처리기사실기 3회차 기출문제 상세 페이지
1
24-3
아래 Java 프로그램이 출력하는 값을 적으시오.
class Parent {
int n = 4;
int calc() {
return n + 1;
}
}
class Child extends Parent {
int n = 9;
int calc() {
return n * 2;
}
}
public class Main {
public static void main(String[] args) {
Parent a = new Child();
Child b = new Child();
System.out.print(a.n + a.calc() + b.n - b.calc());
}
}해설
13
[해설]
메서드는 실제 객체 기준(동적 바인딩)으로, 필드는 참조 변수의 선언 타입 기준으로 결정된다.
- a.n: a의 타입이 Parent이므로 Parent의 n → 4
- a.calc(): 실제 객체가 Child라 오버라이딩된 Child.calc() → 9 × 2 = 18
- b.n: Child의 n → 9
- b.calc(): 18
4 + 18 + 9 − 18 = 13이 출력된다. 자식이 같은 이름으로 다시 선언한 필드는 부모 필드를 숨길 뿐 오버라이딩되지 않는다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.