가상메서드(VirtualMethod)

가상 메서드

메서드 (Method)

  • 명령어의 집합 (set)
  • Java에서 모든 메서드는 가상 메서드이다.
  • 메서드의 이름주소값을 나타낸다.
  • 메서드를 호출하면 이름과 mapping되어 있는 주소값이 호출된다.

    함수 호출 방식

  1. 프로그램이 로드되면 메서드 영역(코드 영역)명령어 set이 위치한다.
  2. 메서드가 호출되면 명령어 set이 위치한 주소를 찾아가 명령어가 실행된다.
  • 이 때 메서드에 위치한 변수들은 stack메모리에 위치하게 된다.

    서로 다른 인스턴스가 동일한 메서드를 호출하면 같은 method가 호출된다.
    인스턴스가 생성되면 변수는 heap메모리에 저장이 되지만, 메서드 명령어 set은 한 번만 로드된다.

가상 메서드 (Virtual Method)

  • 클래스마다 가상 메서드 테이블(Virtual Method Table)에 메서드의 address를 가지고 있다.
  • 메서드가 재정의되면 재정의된 클래스의 테이블에 address가 추가된다.
Author

Inwoo Jeong

Posted on

2021-08-12

Updated on

2021-09-09

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.

댓글