> Java > java지도 시간 > 메소드 오버로딩

메소드 오버로딩

PHPz
풀어 주다: 2024-08-28 06:33:36
원래의
1024명이 탐색했습니다.
  • Java에서는 동일한 클래스의 두 개 이상의 메소드가 동일한 이름을 공유할 수 있는 메소드 오버로드를 허용합니다.

  • 메서드 매개변수 선언이 다를 때 메서드 오버로드가 발생합니다.

  • 메서드 오버로딩은 Java에서 다형성을 구현하는 방법입니다.

  • 메서드를 오버로드하려면 해당 메서드의 다른 버전을 선언해야 합니다.

  • 컴파일러는 매개변수에 따라 올바른 방법을 자동으로 선택합니다.

  • 중요한 제한 사항: 오버로드된 메서드는 반환 유형뿐 아니라 매개변수의 유형 및/또는 개수도 달라야 합니다.

  • 오버로드된 메서드도 반환 유형이 다를 수 있지만 올바른 메서드를 선택하려면 매개변수가 필수적입니다.

  • 오버로드된 메소드가 호출되면 인수와 일치하는 매개변수가 있는 버전이 실행됩니다.

Sobrecarga de métodos

Sobrecarga de métodos

  • ovlDemo() 메서드는 서로 다른 서명으로 4번 오버로드됩니다.

  • 첫 번째 버전: 매개변수 없음

  • 두 번째 버전: 정수 매개변수 포함.

  • 세 번째 버전: 두 개의 정수 매개변수가 포함됩니다.

  • 네 번째 버전: 두 개의 이중 매개변수가 포함됩니다.

  • ovlDemo()의 처음 두 버전은 void를 반환하고 마지막 두 버전은 값을 반환합니다.

  • 메서드 오버로딩은 반환 유형에 영향을 받지 않습니다.

  • 반환 유형으로만 구별되는 시그니처를 사용하여 ovlDemo()의 두 버전을 모두 사용하려고 하면 오류가 발생합니다.

Sobrecarga de métodos

  • Java의 메소드 오버로딩에는 반환 유형의 차이만으로는 충분하지 않습니다.

  • 이 예에서는 반환 유형이 다르더라도 서명이 동일한 두 메서드가 오류를 발생시키는 것을 보여줍니다.

  • Java는 자동 유형 변환을 수행하며 이러한 변환은 오버로드된 메소드의 매개변수에도 적용됩니다.

Sobrecarga de métodos

  • 이 예에서는 f() 메서드의 두 가지 버전을 보여줍니다. 하나는 int 매개변수를 사용하고 다른 하나는 double 매개변수를 사용합니다.

  • byte 및 short 유형의 값은 f(int) 메소드를 호출하여 자동으로 int로 변환됩니다.

  • Float 값은 f(double) 메서드를 호출하여 double로 변환됩니다.

  • 매개변수와 인수가 직접 일치하지 않는 경우 자동 변환이 발생합니다.

  • 바이트 매개변수가 있는 f() 버전을 추가하면 값 처리 방식이 바뀔 수 있습니다.

Sobrecarga de métodos

  • 현재 버전에서는 f()가 바이트 인수로 호출되면 f(byte)가 int로 자동 변환되지 않고 직접 호출됩니다.

  • 메서드 오버로딩은 Java에서 다형성을 허용하여 "하나의 인터페이스, 많은 메서드" 패러다임의 구현을 촉진합니다.

  • 오버로딩 지원이 없는 언어에서는 서로 다른 데이터 유형에 대해 유사한 메서드가 서로 다른 이름을 가져야 합니다(예: C의 abs(), labs(), fabs()).

  • Java를 사용하면 다양한 숫자 유형에 대해 오버로드되는 Math 클래스의 abs() 메소드와 같이 다양한 인수 유형을 가진 메소드에 동일한 이름을 사용할 수 있습니다.

  • 오버로딩은 관련 메서드가 공통 이름을 공유할 수 있도록 하여 복잡성을 줄입니다.

  • 인수 유형에 따라 컴파일러가 올바른 버전의 메서드를 선택합니다.

  • 오버로드된 메서드는 다양한 활동을 수행할 수 있지만 명확성과 일관성을 유지하려면 서로 관련되어야 합니다.

  • 관련되지 않은 작업에 오버로드된 메서드 이름을 사용하지 마세요. 코드의 의도를 혼란스럽게 할 수 있습니다.

위 내용은 메소드 오버로딩의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿