<div>//소스는 아래와 같습니다.</div> <div><br></div> <div><span style="font-size:9pt;line-height:1.5;">import java.io.*;</span></div> <div><br></div> <div>class C1</div> <div>{</div> <div> int a = 10;</div> <div> C1() { a=1; }</div> <div>}</div> <div>class C2 extends C1</div> <div>{</div> <div> int a = 20;</div> <div> int b = 30;</div> <div> void print() {System.out.println(super.a);}</div> <div> C2() { b=3; }</div> <div>}</div> <div>class C3 extends C2</div> <div>{</div> <div> int c = 40;</div> <div> C3() { a=100; c=200;}</div> <div> void disp() {</div> <div> super.print();</div> <div> System.out.println(super.a); // super.a는 왜 100으로 초기화?</div> <div> System.out.println(a);</div> <div> }</div> <div>}</div> <div><br></div> <div>class myCode</div> <div>{</div> <div> public static void main (String[] args) throws java.lang.Exception</div> <div> {</div> <div> C3 p = new C3();</div> <div> p.disp();</div> <div> }</div> <div>}</div> <div>-----------------------------------------------------</div> <div>출력 : 1</div> <div> 100</div> <div> 100</div> <div><br></div> <div>질문 : C3클래스의 생성자에의해 C2로부터 상속받은 C3의 멤버변수 a만 100으로 초기화 되어야할 것 같은데</div> <div>결과값에서 보여지듯 C2의 멤버변수 a까지 100으로 초기화 되는 이유가 뭔가요? ㅠㅠ</div> <div>상위클래스들의 생성자들이 호출되는건 알고있지만 C2의 생성자에서는 a를 초기화 시키지 않는걸요...</div> <div>으아어으어앙</div> <div> </div> <div><br></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.