λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Java

[Java] λ©”μ„œλ“œ μ˜€λ²„λ‘œλ”© VS λ©”μ„œλ“œ μ˜€λ²„λΌμ΄λ”©

by Bhinney 2022. 12. 28.

πŸ”Ž λ©”μ„œλ“œ μ˜€λ²„λ‘œλ”©(Method Overloading)

λ©”μ„œλ“œ μ˜€λ²„λ‘œλ”©μ΄λž€?
  • 클래슀 μ•ˆμ— 같은 μ΄λ¦„μ˜ λ©”μ„œλ“œλ₯Ό μ—¬λŸ¬ 개 μ •μ˜ν•˜λŠ” 것
  • ν•˜λ‚˜μ˜ λ©”μ„œλ“œλ‘œ μ—¬λŸ¬ 개의 경우의 수 ν•΄κ²° κ°€λŠ₯
성립 쑰건

  1️⃣ 같은 μ΄λ¦„μ˜ λ©”μ„œλ“œ

  2️⃣ 맀개 λ³€μˆ˜μ˜ 개수 ν˜Ήμ€ νƒ€μž…μ΄ λ‹€λ₯΄κ²Œ μ •μ˜

  β—οΈμ˜€λ²„λ‘œλ”©μ€ λ§€κ°œλ³€μˆ˜μ˜ κ°œμˆ˜μ™€ 데이터 νƒ€μž…μ— μ˜ν•΄μ„œλ§Œ ꡬ뢄, λ”°λΌμ„œ 리턴 νƒ€μž…μ€ μ˜€λ²„λ‘œλ”© κ΅¬ν˜„μ— 영ν–₯을 주지 μ•ŠλŠ”λ‹€β—οΈ

μ‚¬μš© 이유

  1️⃣ 같은 κΈ°λŠ₯을 ν•˜λŠ” λ©”μ„œλ“œλ₯Ό ν•˜λ‚˜μ˜ μ΄λ¦„μœΌλ‘œ μ‚¬μš©ν•  수 있음

  2️⃣ λ©”μ„œλ“œμ˜ 이름을 μ ˆμ•½ν•  수 있음


πŸ”Ž λ©”μ„œλ“œ μ˜€λ²„λΌμ΄λ”©(Method Overriding)

λ©”μ„œλ“œ μ˜€λ²„λΌμ΄λ”©μ΄λž€?
  • μƒμœ„ ν΄λž˜μŠ€λ‘œλΆ€ν„° 상속 받은 λ©”μ„œλ“œμ™€ λ™μΌν•œ μ΄λ¦„μ˜ λ©”μ„œλ“œλ₯Ό μž¬μ •μ˜ν•˜λŠ” 것
  • 상속 받은 λ©”μ„œλ“œλ₯Ό κ·ΈλŒ€λ‘œ μ‚¬μš©ν•  수 μžˆμœΌλ‚˜, μžμ‹ ν΄λž˜μŠ€μ— 맞게 λ³€κ²½ν•΄μ•Όν•˜λŠ” 경우 μ˜€λ²„λΌμ΄λ”©μ΄ ν•„μš”
쑰건

  1️⃣ λ©”μ„œλ“œμ˜ μ„ μ–ΈλΆ€(λ©”μ„œλ“œ 이름, 맀개 λ³€μˆ˜, λ°˜ν™˜νƒ€μž…)이 상속 받은 μƒμœ„ ν΄λž˜μŠ€μ™€ μΌμΉ˜ν•΄μ•Ό 함

  2️⃣ μ ‘κ·Ό μ œμ–΄μžμ˜ λ²”μœ„κ°€ μƒμœ„ ν΄λž˜μŠ€λ³΄λ‹€ κ°™κ±°λ‚˜ λ„“μ–΄μ•Ό 함

  3️⃣ μ˜ˆμ™ΈλŠ” μƒμœ„ ν΄λž˜μŠ€λ³΄λ‹€ λ©”μ„œλ“œλ₯Ό 많이 μ„ μ–Έν•  수 μ—†μŒ (더 넓은 λ²”μœ„μ˜ μ˜ˆμ™Έλ₯Ό 던질 수 μ—†λ‹€λŠ” 뜻)

  4️⃣ 클래슀 λ©”μ„œλ“œ ←❌→ μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œ

 

@Override
  • μ–΄λ…Έν…Œμ΄μ…˜μœΌλ‘œ 주석이닀.
  • ν•΄λ‹Ή μ–΄λ…Έν…Œμ΄μ…˜μ€ μ£Όμ„μ΄μ§€λ§Œ, 검증을 ν•˜λŠ” κΈ°λŠ₯을 함
  • μ˜€λ²„λΌμ΄λ”© 검증을 ν•˜μ—¬ μ‹œν–‰λ˜μ§€ μ•Šμ•˜λ‹€λ©΄ 였λ₯˜λ₯Ό 좜λ ₯

λŒ“κΈ€