Overriding vs Overloading

์˜ค๋ฒ„๋กœ๋”ฉ (Overloading)

์˜ค๋ฒ„๋กœ๋”ฉ์ด๋ž€?

ํ•˜๋‚˜์˜ class์— ์‚ฌ์šฉํ•˜๋ ค๋Š” ์ด๋ฆ„๊ณผ ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์ง„ method๊ฐ€ ์žˆ๋”๋ผ๋„ parameter์˜ ๊ฐœ์ˆ˜ ๋˜๋Š” ํƒ€์ž…์ด ๋‹ค๋ฅด๋ฉด,

๊ฐ™์€ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด์„œ method๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ โ†’ ์ƒˆ๋กœ์šด method๋ฅผ ์ •์˜

์˜ค๋ฒ„๋กœ๋”ฉ์˜ ์กฐ๊ฑด

  • Method ์ด๋ฆ„์ด ๊ฐ™๊ณ , parameter์˜ ๊ฐœ์ˆ˜๋‚˜ ํƒ€์ž…์ด ๋‹ฌ๋ผ์•ผ ํ•œ๋‹ค

  • return ๊ฐ’๋งŒ ๋‹ค๋ฅธ ๊ฒƒ์€ ์˜ค๋ฒ„๋กœ๋”ฉ ํ•  ์ˆ˜ ์—†๋‹ค!

์˜ค๋ฒ„๋กœ๋”ฉ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  • ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” method๋ฅผ ํ•˜๋‚˜์˜ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค

    • ex) println

      • ์ธ์ž ๊ฐ’์œผ๋กœ int, double, boolean, String ๋“ฑ ๋‹ค์–‘ํ•œ ํƒ€์ž…์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ง‘์–ด ๋„ฃ์–ด๋„, ์šฐ๋ฆฌ๋Š” ๊ทธ ํ•จ์ˆ˜๋“ค์ด ์–ด๋–ป๊ฒŒ ์‹คํ–‰๋˜๋Š”์ง€๋Š” ๋ชจ๋ฅด์ง€๋งŒ console ์ฐฝ์— ์ถœ๋ ฅ์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค

  • method ์ด๋ฆ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค

์˜ค๋ฒ„๋ผ์ด๋”ฉ (Overriding)

์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด๋ž€?

  • ๋ถ€๋ชจ class๋กœ๋ถ€ํ„ฐ ์ƒ์†๋ฐ›์€ method๋ฅผ ์ž์‹ class์—์„œ ์žฌ์ •์˜ ํ•˜๋Š” ๊ฒƒ

  • ์ƒ์†๋ฐ›์€ method๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ์ž์‹ class์—์„œ ์ƒํ™ฉ์— ๋งž๊ฒŒ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ํ•  ํ•„์š”๊ฐ€ ์ƒ๊ธด๋‹ค

์˜ค๋ฒ„๋ผ์ด๋”ฉ์˜ ์กฐ๊ฑด

  • ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด๋ž€ method์˜ ๋™์ž‘๋งŒ์„ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ, method์˜ ์„ ์–ธ๋ถ€๋Š” ๊ธฐ์กด method์™€ ์™„์ „ํžˆ ๊ฐ™์•„์•ผ ํ•œ๋‹ค (method ์ด๋ฆ„, parameter)

    • but, method์˜ return type์€ ๋ถ€๋ชจ class์˜ return type์œผ๋กœ type ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” type์ด๋ผ๋ฉด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค

  • ๋ถ€๋ชจ class์˜ method ๋ณด๋‹ค ์ ‘๊ทผ ์ œ์–ด์ž ๋ฅผ ๋” ์ข์€ ๋ฒ”์œ„ ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค

  • ๋ถ€๋ชจ class์˜ method ๋ณด๋‹ค ๋” ํฐ ๋ฒ”์œ„์˜ ์˜ˆ์™ธ ๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์—†๋‹ค

@Override์˜ ์šฉ๋„

  • @Override ์–ด๋…ธํ…Œ์ด์…˜์€ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ๊ฒ€์ฆํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค

  • ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด ์‹ค์ œ๋กœ ์‹œํ–‰๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด, ์ปดํŒŒ์ผ ์‹œ ์˜ค๋ฅ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค

Last updated