..
EaxmA QUESTION 34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

QUESTION 34

Given:


class Foo {

public int a = 3;

public void addFive() { a += 5; System.out.print("f "); }

}


class Bar extends Foo {

public int a = 8;

public void addFive() { this.a += 5; System.out.print("b " ); }

}



Invoked with:


Foo f = new Bar();

f.addFive();

System.out.println(f.a);


What is the result?

A. b 3

B. b 8

C. b 13

D. f 3

E. f 8

F. f 13

G. Compilation fails.

H. An exception is thrown at runtime.


Correct Answer: A


해설


Foo f = new Bar(); 

// Foo 클래스의 f 변수 안에 Bar 객체를 생성하여 넣음(Bar클래스는 Foo클래스를 상속)


f.addFive(); 

// Foo클래스의 addFive 메소드 이동하였으나 Bar 클래스의 addFive 메소드가 오버라이딩 하고 있으므로  Foo클래스의 메소드 실행하지 않고 Bar 클래스의 메소드 실행

// Bar클래스의 addFive() 메소드 실행 this.a += 5; 이므로 Bar클래스의 a 변수값은 13이 된다.

// System.out.print("b " ); 출력


System.out.println(f.a); 

// 변수는 오버라이딩개념이 없으므로 Foo클래스의 a변수의 값 3 출력



'DEV > ocjp' 카테고리의 다른 글

EaxmA QUESTION 35  (0) 2015.02.10
EaxmA QUESTION 33  (0) 2015.02.10
EaxmA QUESTION 23  (0) 2015.02.10
  Comments,     Trackbacks