상속부분에서.. 질문을 드립니다.
2008-09-10
|
by 자바공부중
1974
class A {
public void execute() {
print();
}
public void print() {
System.out.println("A의 출력");
}
}
class B extends A{
public void print() {
System.out.println("B의 출력");
}
}
class C extends A {
public void print() {
System.out.println("C의 출력");
}
}
public class Main {
public static void main(String ar[]) {
A a = new A();
A b = new B();
A c = new C();
a.execute();
b.execute();
c.execute();
}
}
위와 같은 프로그램이 있을때 b.execute()를 실행했을때
A의 출력
이 출력될줄 알았는데
B의 출력
이 출력되네요.
c.execute()도 마찬가지 구요.
B클래스에는 void execute() 라는 메서드가 있는 것으로 보는데 그 안에 들어있는
print()는 B클래스의 print를 가르킨다...
이렇게 이해를 하려고 하는데 먼가 잘 정리가 안되네요..
정확한 정리를 위해 답변을 좀 부탁드립니다.