-
[JAVA] 매서드 재정의와 가상 메서드 원리JAVA 2021. 5. 4. 15:09
위 포스팅은 패스트캠퍼스의 강의를 듣고 작성하였습니다.
메서드는 어떻게 호출되고 실행 되는가?
메서드(함수)의 이름은 주소값을 나타낸다.
메서드는 명령어의 set이고 프로그램이 로드되면 메서드 영역(코드 영역)에 명령어 set이 위치
해당 메서드가 호출 되면 명령어 set이 있는 주소를 찾아 명령어가 실행이 된다.
이때 메서드에서 사용하는 변수들은 스택 메모리에 위치하게 된다.
따라서 다른 인스턴스라도 같은 메서드의 코드는 같으므로 같은 메서드가 호출됨
인스턴스가 생성되면 변수는 힙 메모리에 따로 생성되지만, 메서드 명령어 set은 처음 한번 로드 된다.
가상 메서드 원리
- 가상 메서드 테이블(vitual method table)에서 해당 메서드에 대한 address를 가지고 있음
- 재정의된 경우는 재정의 된 메서드의 주소를 가리킴
아직 내용이 잘 이해가 되지 않지만, 계속 보고 이해하려고 해야겠습니다.😂😂
'JAVA' 카테고리의 다른 글
[JAVA] 오버라이딩 관련 블로그 주소 (0) 2021.05.06 [JAVA] 다형성, 상속 관계 (0) 2021.05.05 [JAVA] 배열 (0) 2021.05.03 [JAVA] static 응용 - 싱글톤 패턴(singleton pattern) (0) 2021.05.03 [JAVA] STATIC 변수 (0) 2021.05.03