Java

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

567Rabbit 2024. 5. 31. 16:24

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

 

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

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

 

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

 

 

java
λ‹«κΈ°
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); β€Œ} }

 

java
λ‹«κΈ°
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λ₯Ό μ΄μš©ν•  λ•Œ λ“± 였λ₯˜κ°€ λ°œμƒν•œλ‹€.