다중 디스패치 및 함수 오버로딩


14

둘 사이의 차이점 (있는 경우)을 이해하려고합니다.

Multiple Dispatch의 Wikipedia 페이지에 따르면 Function Overloading과 동의어이지만 나중에는 다음과 같이 말합니다.

Java와 같은 단일 디스패치 만있는 언어에서 […]

Java는 함수 오버로드를 지원하기 때문에 모순처럼 보입니다.

그래서 어느 것입니까? Multiple Dispatch가 Function Overloading과 다른가요, 아니면 Java가 Multible Dispatch를 지원하지 않는다고 주장하는 기사가 잘못 되었습니까?

답변:


16

다중 디스패치는 함수 오버로딩과 항상 같지는 않지만 (일부는 유사하지만) 몇 가지 유사성이 있습니다. 그리고 Java는 다중 디스패치를 ​​지원하지 않습니다.

자바, 파견 및 오버로드 사이의 가장 큰 차이를 포함하여 정적으로 입력 된 언어에서 그 오버로드가 기반으로되어 정적의 매개 변수의 유형 (즉, 실제로 컴파일 시간을 결정이라고 방법의 선택) 파견이 기반으로하면서, 동적 유형 (즉, 결정은 런타임에 이루어진다). (이러한 언어는 일반적으로 다중 디스패치를 ​​지원하지 않습니다.)

그러나 다시 말하지만 이것은 용어의 문제 일 수 있습니다. 동적으로 유형이 지정된 언어에서 디스패치 및 오버로드는 실제로 같은 것으로 보일 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.