함수 오버로딩
3611 단어 oopoverloadingpolymorphismjava
간단히 말해서 이름은 같지만 구현이 다른 여러 함수 또는 메서드를 정의할 수 있습니다.
메소드가 인수의 다른 구성을 취하고 각 경우에 다른 유형을 리턴할 수 있는 상황에서 매우 유용할 수 있습니다.
함수 오버로딩에 대해 더 흥미로운 점은 Python 및 PHP와 같은 많은 프로그래밍 언어에서 불법으로 간주되지만 C++, C#, Java, Swift 및 Kotlin과 같은 다른 프로그래밍 언어에는 내장되어 있다는 것입니다.
다형성과 함수 오버로딩에 대해 Java 코스에서 객관식 질문을 통해 알게 되었습니다.
그들이 사용한 예는 다음과 같습니다.
public class Zap {
static boolean zap() { return true; }
static int zap(boolean x) { return 0; }
static double zap(int x) { return 0.5; }
static String zap(double x) { return "Zap!"; }
static boolean zap(String x) { return false; }
public static void main(String[] args) {
System.out.println(zap(zap(zap(zap(1)))));
}
}
당신이 생각하는 출력은 무엇입니까?
ㅏ. 진실
비. 0
씨. 0.5
디. 기력!
이자형. 거짓
디버거의 도움으로 중첩된 메서드 호출을 추적할 수 있습니다.
Java는 실제 인수의 유형에 따라 각 메서드 호출에 사용할 메서드 정의를 결정합니다.
가장 안쪽의 zap은 정수를 취하므로 Java는 세 번째 메서드 정의를 선택합니다. Double 유형을 반환하므로 다음 zap은 네 번째 메서드 정의를 사용할 것입니다.
This post은 원래 기술에 관한 모든 것을 쓰는 my blog에 게시되었습니다.
Reference
이 문제에 관하여(함수 오버로딩), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/themreza/function-overloading-47kc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)