Question 8 : 접근제어자

Assume that country is set for each class.

Given:
10. public class Money {
11.      private String country, name;
12.      public String getCountry() { return country; }
13. }

and:
24. class Yen extends Money {
25.      public String getCountry() { return super.country; }
26. }
27.
28. class Euro extends Money {
29.      public String getCountry(String timeZone) {
30.           return super.getCountry();
31.      }
32. }

Which two are correct? (Choose two.)

A. Yen returns correct values.
B. Euro returns correct values.
C. An exception is thrown at runtime.
D. Yen and Euro both return correct values.
E. Compilation fails because of an error at line 25.
F. Compilation fails because of an error at line 30.


[Head First Java - p.262]
# 어떤 구상 클래스를 만들어서 메소드를 오버라이드해야 하는데 그 메소드의 상위클래스 버전에 있는 행동이 필요하다면, 즉 오버라이드 할 때 기존의 메소드를 완전히 버리지 않고 상위클래스의 행동에 좀더 구체적인 기능을 추가하기만 할 때는 super를 사용하면 된다.

[Head First Java - p.701]
# public - 어디에 있는 어떤 코드에서도 접근할 수 있다.
# protected - 같은 패키지에 있는 코드에서 접근할 수 있고 다른 패키지에 속하는 하위클래스에서도 상속할 수 있다.
# default - 같은 패키지에서만 접근할 수 있다.
# private - 같은 클래스에 있는 코드에서만 접근할 수 있다.

Answer: BE
반응형

'잘난놈되기 > SCJP' 카테고리의 다른 글

Q010. HashSet  (0) 2008.03.30
Q009. 클래스 관계  (0) 2008.03.30
Q007. 접근제어자  (0) 2008.03.25
Q006. Format 클래스  (0) 2008.03.24
Q005. 클래스의 형변환  (0) 2008.03.23

+ Recent posts