2012-04-30 3 views
1

책의 im reading은 하위 클래스의 메서드를 재정의하면 런타임 다형성을 의미합니다. 컴파일 시간 다형성 같은 것이 있습니까? 컴파일 시간에 단순 상속이 발생했다면 다형성은 런타임이라고 생각했습니다.컴파일 시간 다형성?

답변

2

그들은 때때로 컴파일 시간 다형성라고를 오버 방법 암시한다.

실제로 메서드 오버로드를 사용하면 매개 변수로 전달 된 개체 유형을 기반으로 다른 코드 조각을 호출 할 수 있습니다. 오버로드는 컴파일 타임에 해결되므로 오버로드 메커니즘은 컴파일 타임 다형성으로 간주 될 수 있습니다.

+0

설명 할 수 있습니까? – user1364686

+0

@ user1364686 확실히, 업데이트를 살펴보십시오. – dasblinkenlight

+0

그래서 컴파일 타임에 오버로드가 발생하며 런타임에 오버라이드됩니까? – user1364686

1

Lucca Cardelli는 질문에 대한 답변을 아주 자세하게 설명하는 On Understanding Types, Data Abstraction and Polymorphism이라는 훌륭한 기사를 가지고 있습니다.

귀하의 질문에 언급 된 것은 ad-hoc polymorphism이며 메소드 오버로딩과 연산자 오버로드에있는 유형과 같은 유형의 cohercions로 구성됩니다.이 두 가지는 컴파일 할 때 발생합니다. 반면 주어진 메소드에 대한 올바른 구현을 선택하는 것은 런타임에 발생합니다. 이것은 parametric or inclusion polymorphism의 일부입니다.

하지만 Lucca Cardelli가 나에게 줄 수있는 꿈보다 나은 대답을 줄 것이라고 확신합니다.

최근에이 포럼에 another similar question에 참가했으며이 두 가지 유형의 다형성 예제를 제공했습니다. 당신이 이미 알고 있을지도 모른다는 인상을 갖지만 당신은 그것을 한 번 들여다보고 싶을 것입니다.

Polymorphism in Object-oriented Programming languages을 (를) 읽는 것이 좋습니다.

+0

수학에 연결되는 방법은 무엇입니까? – user1364686

+0

이것은 수학과 마찬가지로 계산법이 아니지만 컴퓨팅 이해를위한 가장 견고한 기반 중 하나 인 람다 계산법이며 문서에서 간략하게 언급되어 있습니다. 타입 이론에 대한 몇 가지 개념을 소개하는데 도움이되는데,이 람다 미적분학은 가장 원시적 인 형태의 유형이없는 시스템을 보여줍니다. 질문에 대한 답은 처음 2 ~ 5 페이지이며,이 이론을 모두 탐구 할 필요는 없습니다. 첫 페이지에서 설명을 이해하십시오. –