Java

μžλ°” λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©(Method Overloading) ν•˜λŠ” 방법

567Rabbit 2024. 5. 31. 16:24

λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©(Method Overloading) μ΄λž€?

 

같은 μ΄λ¦„μ˜ λ©”μ†Œλ“œλ₯Ό μ—¬λŸ¬ 개 μ •μ˜ν•˜λ˜, μ„œλ‘œ λ‹€λ₯Έ λ§€κ°œλ³€μˆ˜ λͺ©λ‘μ„ 가지도둝 ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° 기법이닀.

λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©μ„ 톡해 같은 λ™μž‘μ„ μˆ˜ν–‰ν•˜μ§€λ§Œ, μž…λ ₯값이 λ‹€λ₯Ό 경우 λ‹€λ₯Έ λ°©μ‹μœΌλ‘œ μ²˜λ¦¬ν•  수 μžˆλ‹€.

 

ν•¨μˆ˜μ΄λ¦„ ν•˜λ‚˜λ§Œ 가지고도 μ‹€ν–‰ν•  수 μžˆκ²Œλœλ‹€. (ex) addν•¨μˆ˜

 

 

public class AddMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”© ν•˜κΈ° μ „
		Add add1 = new Add();
		int result = add1.add(3, 4);
		
		System.out.println(result);
		
		double result2 = add1.addDouble(3.9, 2.88);
		System.out.println(result2);
		
		
		String result3 = add1.addString("hi","bye");
		System.out.println(result3);
		
		//λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©
		int result4 = add1.add(3,10,7);
		System.out.println("result4 : " + result4);

	}

}

 

public class Add {
	
	//λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”© ν•˜κΈ° μ „
	int add(int x, int y) {
		return x+y;
	}
	
	double addDouble(double x, double y){
		return x+y;
	}
	
	String addString(String x, String y){
		return x + " , " + y;
	}
	
	//λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©
	int add(int x, int y, int z){
		return x + y + z;
	}

}

 

 

 

 

 

 

+ μ˜ˆμ‹œλ₯Ό 보자. ParentλŠ” μ˜€λ²„λ‘œλ”© ν•˜μ˜€κ³ , ChildλŠ” μ˜€λ²„λ‘œλ”© ν•˜μ§€ μ•Šμ•˜λ‹€.

 

  λ‹€μŒκ³Ό 같이 ν•¨μˆ˜ μžμ²΄μ— νŒŒλΌλ―Έν„°λ₯Ό 직접 μž…λ ₯ν•˜λŠ” 것을 μ˜€λ²„λ‘œλ”© ν•œλ‹€κ³  ν•œλ‹€.

 

 

 

 

*** μ˜€λ²„λ‘œλ”©ν•  λ•Œ μ€‘μš”ν•œ 점은, λ””ν΄νŠΈ 클래슀λ₯Ό λ§Œλ“€μ–΄ μ£Όμ–΄μ•Ό ν•œλ‹€λŠ” 점이닀.

 

 

 

public Parent() {

}

 

처럼 λ””ν΄νŠΈλ₯Ό 해주지 μ•ŠλŠ”λ‹€λ©΄, λͺ¨λ“  Parent() ν΄λž˜μŠ€κ°€ μ•„λž˜μ™€ 같이 μ˜€λ²„λ‘œλ”© ν•œ ν•¨μˆ˜λ‘œ 적용되기 λ•Œλ¬Έμ—,

Childμ—μ„œ Parentλ₯Ό μ΄μš©ν•  λ•Œ λ“± 였λ₯˜κ°€ λ°œμƒν•œλ‹€.