[static binding과 dynamic binding의 차이점을 중점으로]



C++의 경우 컴파일 타임 때 실행될 함수를 결정함 --> static binding


따라서 상속의 경우 virtual function으로 정의를 하지 않을 경우

부모클래스의 포인터로는 부모 클래스에 정의된 멤버함수만을 사용할 수 있음

따로 멤버함수를 가상 함수로 정의해주어야 run-time때 실행될 함수를 결정할 수 있고

그렇기 때문에 부모클래스의 포인터가 가리키는 실제 객체의 함수를 호출하는 것이 가능함

--> dynamic binding


근데 자바의 경우는 dynamic binding 개념이기 때문에 C++처럼 가상 함수를 따로 정의해주지 않아도

부모클래스에만 적절한 메서드가 정의되어있으면 참조변수를 가지고 실제 인스턴스의 메서드를 실행하는 

것이 가능함





Posted by huammmm1
,