'자바가 메소드를 찾는 방법'에 해당되는 글 1건
- 2008.08.14 [아시나요?]자바가 메소드를 찾는 방법
자바에서 메소드는 같은 이름을 사용하는 다양한 메소드가 존재할 수 있고. 여러단계의 상속 계층 속에서 오버라이딩될 수 있다. 이렇게 다양한 메소드 중에서 자바는 과연 어쩧게 원하는 메소드를 찾아내서 호출하는 것일까? 여기서 잠시 그 방법에 대해서 알아보도록 하자.
제일 먼저 자바는 지금현대 클래스에서 호출한 메소드의 이름과 인자가 일치하는 메소드를 찾는다. 만일 여기서 일치하는 메소드를 찾았다명 이 메소드를 호출하고 더 이상의 작업은 하지 않는다.
만일 현재 클래스에서 찾을 수 없다면, 이제부터는 상위 클래스에서 검색하게 되는데 이 작업은 일치하는 메소드를 찾을 때까지 계속된다. 만일 최상위 클래스까지 일치하는 메소드를 찾을 수 없다면 자바는 에러를 발생한다.
이렇게 자바는 객체의 위치(상속관계의 위치)에 따라 어느 메소드를 호출할지를 결정하는데 이를 보통 다형성(polymorphism)이라고 한다. 이러한 다형성을 가능케 하는 요인으로는 지연 바인딩(late binding)을 들 수 있는데, 이것은 컴파일 시간에 메소드호출에 관한코드를 생성시키는 것이 아니라 프로그램 실행시에 메소드를 검색하여 원하는 메소드를 호출하는 방식을 말한다. 이는 일반적인 함수 호출 방식인 정적 바인딩(static binding)과 종종 비교되곤 한다. 정적 바인딩은 컴파일 시간에 함수 호출과 관련된 모든 작업이 정해지게 된다.
'My work space > Java' 카테고리의 다른 글
[아시나요?]API 문서의 구조 (0) | 2008.08.14 |
---|---|
[아시나요?]변수의 초기화 (0) | 2008.08.14 |
[아시나요?]객체 (0) | 2008.08.14 |
[아시나요?]객체 지향 언어_2 (0) | 2008.08.14 |
[아시나요?]객체 지향 언어1 (0) | 2008.08.14 |