책 내용 질문하기
실기 기본서 p.85 문제 5 재질문
도서
2026 시나공 프로그래밍기능사 실기 기본서
페이지
85
조회수
94
작성일
2026-03-07
작성자
신*호
첨부파일

마지막 줄의 parent.getX()를 실행하는 부분에서, Parent 클래스의 메소드 getX()가 실행되어 x*y를 리턴할 때, x가 왜 Child의 속성 x인 10이 아닌지 궁금합니다.


부모 클래스와 자식 클래스 모두 동일한 이름을 가진 속성(메소드 아님) x를 가지고 있으니

Parent 클래스에서 x를 사용한다면 Child 클래스의 속성 x로 재정의하여 사용하는 것 아닌가요?

답변
2026-03-09 18:59:35

안녕하세요 길벗수험서 운영팀입니다.

자바에서 상속은 자식 클래스가 부모 클래스의 멤버(필드·메서드)를 물려받아 재사용하는 개념입니다

자식 클래스가 부모의 필드를 그대로 가져오더라도, 자식에서 같은 이름의 필드를 새로 선언하면 두 개의 필드를 갖게 됩니다.

이때 자식의 필드는 this.a, 부모의 필드는 super.a로 구분되며,

단순 a는 현재 클래스에서 선언된 필드를 우선 사용합니다.

따라서 부모클래스의 getX( ) 가 실행되면 부모클래스의 x가 사용되는것입니다

행복한 하루되세요 :)

  • 관리자
    2026-03-09 18:59:35

    안녕하세요 길벗수험서 운영팀입니다.

    자바에서 상속은 자식 클래스가 부모 클래스의 멤버(필드·메서드)를 물려받아 재사용하는 개념입니다

    자식 클래스가 부모의 필드를 그대로 가져오더라도, 자식에서 같은 이름의 필드를 새로 선언하면 두 개의 필드를 갖게 됩니다.

    이때 자식의 필드는 this.a, 부모의 필드는 super.a로 구분되며,

    단순 a는 현재 클래스에서 선언된 필드를 우선 사용합니다.

    따라서 부모클래스의 getX( ) 가 실행되면 부모클래스의 x가 사용되는것입니다

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.