본문 바로가기

SoftwareDo/OCAJP

[오답노트] 112번 인터페이스와 상속

안녕하세요. 휴보로입니다. 방금은 실수를 하더니, 이번엔 아예 모르는 게 나왔습니다.


※ 1zo-808 V19.75 기준입니다

원본에서는 E가 답이였습니다만, 실제 답은 D 입니다.

  사실 이 문제는 해설을 할 것도 없이 두 가지만 알고 있으면 됩니다.

  1. 상속받을 경우, 접근제한자는 "확장만" 가능하다.
  2. interface의 멤버변수는 public static final 이여야 하며, 메소드는 public abstract 이여야 한다.

상속받을 경우, 더 넓은 범위로만 전근제한자를 바꿀 수 있다.

 이 두가지를 알고 있다면, 문제의 n1 번째 줄에서 public to protected 이므로 컴파일 에러가 남을 알 수 있겠죠.


오답

 저의 경우에는, 1번을 알고 있었으나 2번은 생각지 못하여 "default에서 protected인데 왜 안되지?"라고 생각하였고 그래서 B가 정답이라고 생각했습니다.

번외

 만약에 컴파일 에러를 해결한다면 왜 정답은 B일까요? 자식 객체를 부모 객체로써 사용할 때, 자식의 overriding 된 메서드를 사용할 때에는 부모의 메서드가 호출 되는것이 아니라 자식의 메서드가 호출되기 때문입니다.

'SoftwareDo > OCAJP' 카테고리의 다른 글

[오답노트] 111번 지역변수, 전역변수에 관한 실수  (0) 2020.11.11
OCAJP 공부 시작  (1) 2020.11.07