JAVA

자바 상속 기초 4) 메소드 overloading - 공부하는 도비

DOVISH WISDOM 2022. 4. 2. 20:04  
728x90
반응형

클래스의 메소드를 선언할 때, 같은 메소드지만 다른 매개 변수를 가지게 하는 것을 메소드 overloading이라고 합니다.

바로 예제 코드를 보겠습니다.

package Inferitance;

class Print {
	int a, b;
	int c = 0;
	
	public void Setnumber(int a, int b)
	{
		this.a = a;
		this.b = b;
	}
	
	public void Setnumber(int a, int b, int c)
	{
		this.Setnumber(a, b);
		this.c = c;
	}
	
	public void Sum()
	{
		System.out.println(a + b + c);
	}
	public void Mul()
	{
		if (c == 0)
		{
			System.out.println(a * b);
		}
		else
		{
			System.out.println(a * b * c);
		}
	}
}


public class Overloading {

	public static void main(String[] args) {
		
		Print prt = new Print();
		
		prt.Setnumber(30, 50);
		prt.Sum();
		prt.Mul();
		
		Print prt_2 = new Print();
		
		prt_2.Setnumber(30, 50, 60);
		prt_2.Sum();
		prt_2.Mul();
		

	}

}

위의 코드는 Setnumber 메소드에 몇 개의 매개 변수를 가지냐에 따른 오버 로딩입니다.

 

현재 Setnumber은 메소드 명이 같지만, 자바 입장에서는 매개변수의 개수와 타입이 다르면 다른 메소드로 인식을 합니다. 따라서 두 개의 매개변수를 받는 Setnumber, 세 개의 매개변수를 받는 Setnumber를 따로 선언하지 않아도 됩니다. 

 

메소드 오버로딩