Java/공개글
C++과 Java의 차이점?
huammmm1
2013. 7. 13. 03:29
[static binding과 dynamic binding의 차이점을 중점으로]
C++의 경우 컴파일 타임 때 실행될 함수를 결정함 --> static binding
따라서 상속의 경우 virtual function으로 정의를 하지 않을 경우
부모클래스의 포인터로는 부모 클래스에 정의된 멤버함수만을 사용할 수 있음
따로 멤버함수를 가상 함수로 정의해주어야 run-time때 실행될 함수를 결정할 수 있고
그렇기 때문에 부모클래스의 포인터가 가리키는 실제 객체의 함수를 호출하는 것이 가능함
--> dynamic binding
근데 자바의 경우는 dynamic binding 개념이기 때문에 C++처럼 가상 함수를 따로 정의해주지 않아도
부모클래스에만 적절한 메서드가 정의되어있으면 참조변수를 가지고 실제 인스턴스의 메서드를 실행하는
것이 가능함