[JAVA]/08. 상속

09. 오버로딩

76beny 2022. 4. 13. 19:33

오버로딩 (=과적하다)

■ 동일한 이름의 메소드를 여러 개 정의해서 사용하는 것
 하나의 함수가 마치 여러 일을 하는 것처럼 정의할 수 있기 때문에 다형성 (polymorphism)이 구현 됨

 

오버로딩 규칙

<메소드 오버로딩 규칙( 가능한 경우)>
1. 메소드의 이름이 같아야한다.
2. 매개변수의 갯수가 달라야함
3. 매개변수의 Type(종류)가 달라야함
4. 매개변수의 Type 순서가 달라야함
5. 반환형은 무관하다. (return 을 하든 안하든 된다.)
6. 변수명은 무관하다.(type으로만 판단함!)

7.매개변수명은 무관함

8.리턴 타입은 무관함

 

오버로딩 예시 – MethodExam.java

public class MethodExam {
	public void func() {
		System.out.println("1번째 메소드");
	}
	public void func(int num) {
		System.out.println("2번째 메소드");
	}
	public void func(char ch) {
		System.out.println("3번째 메소드");
	}
	public void func(int num1, int num2) {
		System.out.println("4번째 메소드");
	}
}

 

 

오버로딩 예시– Run.java

MethodExam me = new MethodExam();
me.func();
me.func(10);
me.func('A');
me.func(10,20);

 

 

오버로딩 성립되는 경우& 안되는 경우

[매개변수의 형식이 다르므로 함수 오버로딩 성립]

public void func(int num) { ... }
public void func(char ch) { ... }

 

[매개변수의 개수가 다르므로 함수 오버로딩 성립]

public void func(int num) { }
public void func(int num, int num2) { }

 

[매개변수의 형식과 개수가 동일하고 반환 자료형만 다르므로 함수 오버로딩 성립 안됨]

public void func(int num) { }
public int func(int num) { }

 

코드예시

package com.kh.ex04.overloading;

//메소드 오버로딩
	public class Overloading {
    
    void myMethod(int arg) {
		System.out.println(arg);

	}

	// 경우2 가능
	int myMethod(int arg1, int arg2) {
		System.out.println(arg1 + arg2);
		return arg1 + arg2;
	}

	// 경우3
	int myMethod(String arg) {
		System.out.println(arg);
		return arg.length();
	}

	// 오버로딩 실행
	public static void main(String[] args) {

		// 대표적인 오버로딩 함수
		System.out.println(12);// 숫자도 받고
		System.out.println('a');// 문자도받고
		System.out.println(12.12);// 소수도받고
		System.out.println("!!!");// 문자열도받고
		// 만약 System.out.println();가 아니라면...
		// System.out.printlnInt();
		// System.out.printlnChar();
		// 처럼 타입을 하나하나다 적어줘야 함.........^^

		// 작성 오버로딩 함수
		Overloading test = new Overloading();
		test.myMethod(12);
		test.myMethod(0, 4);
		test.myMethod("문자열");

	}
}

 

 

 


"본 인터넷 사이트 내의 모든 이미지, 문구, 콘텐츠, 내용 등에 대한 저작권은 76beny에게 있습니다.

이를 무단으로 도용, 복사, 전재, 재배포, 2차 변형 등을 할 경우

민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."