메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

뇌를 자극하는 java 프로그래밍

뇌를 자극하는 java 프로그래밍 질의응답 게시판입니다.

상속부분에서.. 질문을 드립니다.

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를 가르킨다...
이렇게 이해를 하려고 하는데 먼가 잘 정리가 안되네요..
정확한 정리를 위해 답변을 좀 부탁드립니다.
댓글 입력
자료실