메소드 과부하는 이름이 동일하지만 다른 매개 변수를 클래스에서 정의 할 수 있음을 의미합니다. 호출되면 해당 메소드가 사용되지 않은 매개 변수 테이블에 따라 선택됩니다.
예를 들어
공개 클래스 테스트 {void max (int a, int b) {System.out.println (a> b? a : b); } void max (double a, double b) {system.out.println (a> b? a : b); } public static void main (String [] args) {test t = new test (); T.max (3,4); T.max (3.0,4.4); }}출력은 다음과 같습니다.
4 4.4
생성자에 과부하가 걸릴 수도 있습니다
다른 예를 살펴 보겠습니다
클래스 chongzai {public void a (int a); 공공 공허 a (string a); 공개 void a (int a, int b);} 위에서 언급했듯이 과부하이며 과부하는 다음 조건을 충족해야합니다.
1. 같은 클래스 여야합니다
2. 메소드 이름 (함수라고도 함)
3. 매개 변수 유형이 다르거나 매개 변수 수가 다릅니다.
동시에, 나는 또한 과부하의 기능에 대해 LZ에 알릴 것입니다. 위의 예에 대해 이야기합시다.
chongzai cz = new chongzai (); cz.a (1); // 호출 a (int a); cz.a ( "Passed Parameter"); // 호출 a (문자열 a) cz.a (1,2); // 호출 a (int a, int b)
위의 내용은 이미 어떤 방법을 호출 해야하는지 언급했습니다. 이 방법은 프로그램에서 입력 한 매개 변수에 따라 호출 할 방법을 결정하는 데 사용됩니다.
예를 들어 게임을하는 경우 게임을 마치는 여러 사람이있을 수 있습니다. 사람들의 수가 얼마나 많은 사람들이 있는지 확실하지 않으면 과부하를 사용할 수 있습니다.
예를 들어 최대 3 명이 3 개의 매개 변수를 정의 할 수 있습니다.
public void a (문자열 a); public void a (문자열 a, 문자열 b); public void a (문자열 a, 문자열 b, 문자열 c);
두 사람, 당신은 2 개의 매개 변수, 3 명으로 메소드를 호출하고, 당신은 3 개의 매개 변수로 메소드를 호출하고, 그것을 호출하는 방법은 위에서 설명되었습니다.