>  Q&A  >  본문

java - 오버로딩이 다형성입니까? ?

이 문제는 어떻게 말해도 정말 머리 아픈 문제입니다

보기 1: 다형성의 세 가지 요소, 1, 2, 3
그래서 오버로딩은 다형성이 아닙니다

보기 2:

Java Virtual Machine 책에서 언급됨

"오버로딩" 및 "다시 쓰기"와 같은 다형성 특성의 가장 기본적인 표현 중 일부 섹션 8.1
이는 오버로딩과 다시 쓰기가 둘 다 다형성의 표현임을 의미합니다

어떻게 이해하셨나요

给我你的怀抱给我你的怀抱2686일 전1025

모든 응답(3)나는 대답할 것이다

  • 仅有的幸福

    仅有的幸福2017-06-12 09:22:06

    각 책은 다르게 번역되므로 Override 또는 Overload 등 영어 용어를 지정하는 것이 가장 좋습니다.

    Override는 다형성의 표현(예: @Override public String toString() {...})이지만 @Override public String toString() {...}),但Overload不是(例如PrintStream.println()PrintStream.println(String s)Overload

    은 그렇지 않습니다(예: PrintStream.println()PrintStream.println(String s)). 🎜

    회신하다
    0
  • 给我你的怀抱

    给我你的怀抱2017-06-12 09:22:06

    실제로 중국어 "오버로드"에 해당하는 영어 단어는 재정의, 오버로드 및 덮어쓰기라는 세 가지가 있습니다. 나중에 마지막 단어는 점차 "다시 쓰기" 또는 "다시 쓰기"로 번역되었습니다.

    오버라이드는 동일한 시그니처로 상위 클래스의 함수를 재정의하는 행위를 의미합니다. 이 경우 상위 클래스 함수와 하위 클래스 함수는 독립적인 개체입니다. 그러나 호출할 때 컴파일러(또는 인터프리터)는 객체의 실제 유형을 기반으로 호출할 구현을 결정할 수 있습니다.

    오버로드는 서명할 수 없는 동일한 함수 이름의 여러 구현을 나타냅니다. 이 경우 동일한 함수 이름을 다른 유형의 매개변수로 호출하여 다른 결과를 생성할 수 있는 경우가 많습니다. 대표적인 예는 max(int, int)max(double, double) 등입니다.

    덮어쓰기는 일반적으로 하위 클래스에서 상위 클래스의 동일한 시그니처를 사용하여 함수를 다시 작성하는 것입니다. 두 함수의 시그니처는 동일하지만 서로 관련이 없습니다. 이 경우 상위 클래스 유형은 하위 클래스 객체를 참조하고 호출 메서드는 호출된 상위 클래스 메서드입니다(override와의 차이점에 유의하세요)

    덮어쓰기와 재정의의 차이점은 아래와 같습니다

    이제 다형성에 대해 이야기해 보겠습니다. 먼저 다형성의 정의를 살펴보겠습니다.

    • 다형성은 동시에 여러 형태를 갖는 동일한 개체를 의미합니다. (빙 뮤직)

    • 다형성은 말 그대로 "여러 상태"를 의미합니다. 객체 지향 언어에서는 인터페이스의 여러 가지 구현을 다형성이라고 합니다. (바이두 백과사전)

    정의에 따르면 "오버로딩"은 다형성과 관련이 없지만 오버로딩은 다형성의 한 형태입니다. 다른 것에는 인터페이스, 추상화, 가상 함수, 템플릿, 제네릭 등이 포함되며 Baidu의 백과사전에서 인용한 내용은 다음과 같습니다.

    • 간단히 말하면 한 문장입니다. 하위 클래스 유형의 포인터를 상위 클래스 유형의 포인터에 할당할 수 있습니다. 다형성은 오브젝트 파스칼과 C++ 모두에서 가상 함수를 통해 구현됩니다.

    • 다형성: 동일한 작업이 다른 개체에 적용되며 해석이 다르고 실행 결과가 다를 수 있습니다. 런타임 시 기본 클래스에 대한 포인터를 통해 파생 클래스의 메서드를 호출할 수 있습니다.

    • C++에는 다형성을 달성하는 방법으로 가상 함수, 추상 클래스, 재정의 및 템플릿이 있습니다(오버로딩은 다형성과 관련이 없음).

    • 다형성을 사용하면 메소드가 동일한 이름을 가질 수 있습니다. 매개변수 또는 반환 값을 상위 유형에서 전달하거나 반환할 수 있습니다.

    회신하다
    0
  • 欧阳克

    欧阳克2017-06-12 09:22:06

    번역 오류가 있을 수 있습니다. 다형성은 객체가 서로 다른 컨텍스트에서 서로 다른 특성을 나타내는 것을 의미합니다. 예를 들어 하위 클래스인 parent는 상위 클래스에 로그인 메소드가 있고, 하위 클래스에 save라는 새로운 메소드가 추가됩니다. . 또한 Child child1=new Child()를 직접 사용하면 child1 객체는 저장 및 로그인 메소드를 호출할 수 있고 Parent child2 = new Child()를 사용하면 child2 객체는 로그인 메소드만 사용할 수 있습니다. 따라서 상황에 따라 다릅니다.

    회신하다
    0
  • 취소회신하다