2011-09-20 2 views
2

둘 사이의 차이점은 무엇입니까?대용량 변이 형 다형성

수퍼 클래스가 myMethod(int a)이고 상속 클래스가 같은 메서드를 사용하는 경우 이 우선 적용입니까? 아니면 다형성입니까?

나는 b/w의 오버라이드와 오버로딩의 차이는 분명하지만, 다형성과 오버라이드는 동일하게 보입니다. 아니면 그들은 무엇입니까?

답변

6

오버라이드는 객체에 대한 메소드를 호출 할 때 슈퍼 클래스에있는 것과 동일한 시그니처가있는 서브 클래스의 메소드가 호출 될 때입니다.

다형성은 런타임에 개체 유형을 알 수없고 가장 구체적인 메서드가 호출되는 곳입니다. 따라서 런타임에 객체 유형에 따라 호출되는 메소드의 동작이 다를 수 있습니다.

오버라이드는 오버로드 및 동적 (후기) 바인딩과 함께 다형성 유형입니다. 자세한 내용을보실 수 있습니다 here about the different types.

+0

그것은 차이가 그냥 재정의 의미, 나는 어떤 방법이 호출되지만, 여러 자녀가 ​​상속하는 경우 같은 클래스와 나는 어떤 유형의 아이가 호출 될지 모른다. 다형성이다. 그래서 기본적으로 다형성은 오버라이드를 사용하는 개념이다. 맞습니까? – Kraken

+0

예. 재정의 (override)는 다형성 (polymorphism)을 달성하는 방법이며 다형성 (polymorphism)은이 재정의 결과입니다. 다형성은 오버라이드, 오버로딩 및 다이나믹 (늦은) 바인딩에 의해 달성 될 수있는 원리 일뿐입니다. – adamjmarkham

+1

링크가 dead/404입니다. – gerleim

0

예 ... 우리는 다형성의 속성을 얻습니다 ... 여러 개의 단일 부모 클래스에서 파생 된 클래스가있을 때 ... 재정의를 사용하여 정의 ... 우리는 정의합니다 파생 클래스 메서드의 기능과 같은 부모에서 파생 된 우리는 다형성의 속성을 보여줍니다.