Java에는 오버로드와 재정의라는 두 가지 유형의 다형성이 있습니다. 메소드 오버로딩은 두 가지 유형의 다형성 중 하나입니다.
예를 들어, 어떤 사람에게 "지역 찾기" 작업을 수행하도록 요청하면 그 사람은 당신이 찾고 있는 지역이 무엇인지 물을 수 있습니다.
기능적 다형성은 객체가 해당 메시지를 기반으로 해당 동작을 생성할 수 있도록 다양한 메시지를 함수에 전달할 수 있음을 의미합니다. 객체의 동작은 클래스의 메서드를 통해 반영되므로 동작의 다형성은 메서드의 오버로드입니다.
메소드 오버로딩에 대한 구문 규칙:
메소드 오버로딩은 클래스에 동일한 이름을 가진 여러 메소드가 있을 수 있지만 이러한 메소드의 매개변수는 달라야 함을 의미합니다. 매개변수 개수가 다르거나, 매개변수 개수는 같지만 매개변수 목록에 있는 해당 매개변수의 유형이 다릅니다.
예를 들어:
classPeople{floathello(inta,intb){returna+b;}floathello(longa,intb){returna-b;}doublehello(doublea,intb){returna*b;}}publicclassMain{publicstaticvoidmain(Stringargs[]){Peopletom= newPeople();System.out.println(tom.hello(10,10));System.out.println(tom.hello(10L,10));System.out.println(tom.hello(10.0,10) );}}
실행 결과는 다음과 같습니다.
20.00.0100.0
알아채다:
두 메서드의 이름이 같은 경우 반환 형식이 다르더라도 매개 변수는 달라야 합니다.