자바의 동적 바인딩(Dynamic Binding)과 정적 바인딩(Static Binding)
·
Java/정리
A a = new B();Animal animal = new Dog(); "변수 타입은 Animal인데 왜 Dog의 메서드가 실행되지?" 이 질문의 답이 바로 동적 바인딩(Dynamic Binding)이다. 이번 포스트에서는 바인딩이 무엇인지부터 동적 바인딩과 정적 바인딩의 차이, 그리고 JVM 내부에서 어떤 일이 일어나는지까지 자세히 알아보자.바인딩(Binding)이란?바인딩(Binding)은 메서드 호출과 실제 실행될 메서드를 연결하는 과정을 의미한다.dog.sound();sound()를 호출했다. ▼어떤 클래스의 sound()를 실행해야 하지? ▼실제 실행할 메서드를 결정바인딩은 언제 일어날까?2가지가 존재실행(런타임) 시점실행 시점 (런타임) - 동적 바인딩컴파일 시점 -..