다형성, 오버로딩 및 오버라이드 개념이 혼란스러워서 혼란 스럽습니다. 이 개념들을 설명해주십시오. 어떻게 서로 다른지 알 수 있습니다.다형성, 오버로딩 및 재정의 같은 개념입니까?
매우 혼란 스러우므로 제게 잘 안내해주십시오.
감사합니다.
다형성, 오버로딩 및 오버라이드 개념이 혼란스러워서 혼란 스럽습니다. 이 개념들을 설명해주십시오. 어떻게 서로 다른지 알 수 있습니다.다형성, 오버로딩 및 재정의 같은 개념입니까?
매우 혼란 스러우므로 제게 잘 안내해주십시오.
감사합니다.
Polymorphism은 오버라이드를 통해 얻을 수 있습니다. 간단히 말하면, 다형성 (polymorphism)은 객체의 특성에 따라 다른 동작 (다른 구현법 사용)을 제공하는 객체의 능력을 말합니다. 특히 클래스 계층 구조의 위치에 따라 다릅니다.
Method Overriding은 수퍼 클래스 또는 인터페이스에 정의 된 메소드가 해당 서브 클래스 중 하나에 의해 재정의되어 수퍼 클래스가 제공하는 동작을 수정/대체하는 경우입니다. 구현체 또는 다른 객체를 호출하기로 결정한 것은 런타임에 동적으로 취해 지는데, 이는 객체가 호출되는 객체에 따라 다릅니다. 재정의 할 때 메서드의 시그니처가 동일하게 유지됩니다.
Method Overloading은 다형성과 무관하다. 이것은 다른 형식의 메소드 정의 (일반적으로 다른 매개 변수 수 또는 유형 수신)를 나타냅니다. 그것은 정적 다형성으로 볼 수 있습니다. 구현 또는 다른 것을 호출하는 결정은 코딩시에 취해진 다. 이 경우 메서드의 시그니처가 변경되어야합니다.
다르게 피연산자의 종류에 따라 행동하는 특정 언어 별 운전자의 능력을 의미 다형성과 관련된 다른 개념이다 (예를 들어,+
는
String
들과 함께 첨가 연결을 의미 할 수도 숫자 피연산자).
위키 피 디아의 example은 매우 실례입니다.
다음과 같은 관련 질문
이 유용 할 수 있습니다간단히 말해서, 그들은 같지 않습니다.
오버로드 란 이름은 같지만 매개 변수가 다른 메서드를 만드는 것을 의미합니다.
대체는 메서드의 동작을 변경하기 위해 하위 클래스의 수퍼 클래스 메서드 본문을 다시 정의하는 것을 의미합니다.
다형성 (polymorphism)은 오버라이드 및 오버로딩을 포함하여 그 범위가 훨씬 넓은 개념입니다. Wikipedia's description of polymorphism을 사용하면 다형성을 더 잘 이해할 수 있습니다. 특히 하위 유형 다형성 (또는 포함 다형성) 섹션을보아야합니다.
다형성과 관련이없는 과부하입니까? 오버로드는 컴파일 시간 다형성입니다. 오버 라이딩이 런타임 다형성 인 경우 –