๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

STUDY/JAVA

์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์˜ ์ฐจ์ด์ 

๋ฐ˜์‘ํ˜•

1. ์˜ค๋ฒ„๋กœ๋”ฉ(Overloading) : ๊ฐ™์€ ํด๋ž˜์Šค ๋‚ด์—์„œ ์ด๋ฆ„์€ ๊ฐ™์ง€๋งŒ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐฏ์ˆ˜๋‚˜ ํƒ€์ž…์ด ๋‹ค๋ฅธ ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ.

ํŠน์ง• :
1. ๋ฉ”์†Œ๋“œ์˜ ์ด๋ฆ„์ด ๊ฐ™์•„์•ผํ•จ
2. ์˜ค๋ฒ„๋กœ๋”ฉํ•˜๋Š” ๋ฉ”์„œ๋“œ์™€์˜ ์ฐจ์ด์ ์ด ์žˆ์–ด์•ผํ•จ(๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜, ๋ฐ์ดํ„ฐ ํƒ€์ž…)
3. ์ฐจ์ด์ ์— ๋ฆฌํ„ดํ˜•์€ ํฌํ•จ๋˜์ง€ ์•Š์Œ

 

์ด๋Ÿฐ์‹์œผ๋กœ ์‚ฌ๊ฐํ˜•์˜ ํฌ๊ธฐ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ •์‚ฌ๊ฐํ˜•์ผ ๊ฒฝ์šฐ์—๋Š” widthํ•˜๋‚˜๋งŒ, ์ง์‚ฌ๊ฐํ˜•์ผ ๊ฒฝ์šฐ์—๋Š” width, height ๋‘๊ฐ€์ง€๋ฅผ ์ด์šฉํ•ด์„œ ์˜ค๋ฒ„๋กœ๋”ฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

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

์˜ค๋ฒ„๋ผ์ด๋”ฉ์€ ์ƒ์œ„ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜์œ„ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ.

ํŠน์ง• : 
1. ์ƒ์œ„ํด๋ž˜์Šค์— ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•จ
2. ์ƒ์œ„ํด๋ž˜์Šค์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฐ˜ํ™˜ํ˜•์ด ๊ฐ™์•„์•ผ ํ•จ
3. ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์˜ ํŠน์ง•์ธ ๋‹คํ˜•์„ฑ ์ค‘ ํ•˜๋‚˜
4. ์ƒˆ๋กœ์šด ์˜ˆ์™ธ๋ฅผ throws ํ•  ์ˆ˜ ์—†๋‹ค.

 

์œ„์™€๊ฐ™์ด ๋ถ€๋ชจํด๋ž˜์Šค์—์„œ๋Š” ํŒŒ์ด ๊ฐ’์„ 3.14159๋กœ ๊ณ„์‚ฐํ•˜์ง€๋งŒ ์ž์‹ํด๋ž˜์Šค์—์„œ ๋” ์ •ํ™•ํ•œ ๊ณ„์‚ฐ์„ ์œ„ํ•ด Math.PI ์ƒ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

@Override๋Š” ์ƒ๋žตํ•ด๋„ ๊ดœ์ฐฎ์ง€๋งŒ ๋ถ™์—ฌ์ฃผ๋ฉด areaCircle()์ด ์ •ํ™•ํžˆ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋œ ๊ฒƒ์ธ์ง€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ฒดํฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ˆ˜๋ฅผ ์ค„์—ฌ์ค€๋‹ค.

 

์ž์‹ํด๋ž˜์Šค์—์„œ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜๊ฒŒ ๋˜๋ฉด ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋Š” ์ˆจ๊ฒจ์ง€๊ณ  ์ž์‹๋ฉ”์†Œ๋“œ๋งŒ ์‚ฌ์šฉํ•˜๊ฒŒ๋œ๋‹ค.

์ด๋•Œ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋ฉด superํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์—ฌ ๋ถ€๋ชจ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ถ€๋ชจ ๋ฉ”์†Œ๋“œ์˜ fly()๋Š” ์ผ๋ฐ˜๋น„ํ–‰์ด์ง€๋งŒ ์ž์‹๋ฉ”์„œ๋“œ์—์„œ๋Š” ์ดˆ์Œ์†๋น„ํ–‰๊ณผ ๋ถ€๋ชจ๋ฉ”์„œ๋“œ์˜ ์ผ๋ฐ˜๋น„ํ–‰ ๋‘๊ฐ€์ง€๋กœ ๋™์ž‘ํ•˜๋„๋ก ์„ค๊ณ„ํ–ˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•