Hiya_
๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ
Hiya_
Github
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (154)
    • ๐Ÿ’ปBackend (10)
      • ๋ผ์ด์ง•์บ ํ”„ (6)
      • SSAFY | ์‹ธํ”ผ (2)
      • ์‹ ํ•œDS ๊ธˆ์œตSW ์•„์นด๋ฐ๋ฏธ (2)
    • ๐Ÿ“๋ฌธ์ œ ํ’€์ด (102)
      • ๐ŸงฉBaekjoon (47)
      • ๐ŸงฉProgrammers (42)
      • ๐ŸงฉSWExpertAcademy (10)
      • ๐ŸงฉSofteer (3)
    • ๐Ÿ“‚Language (31)
      • Python (3)
      • JAVA (2)
      • SQL (6)
      • English (19)
    • โœจUseful information (5)
    • ๐Ÿ”‘Algorithms (3)
    • ๐Ÿ™Git (2)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํ† ์ต๊ณต๋ถ€
  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • ํ† ์ต์‹œํ—˜
  • BaekJoon
  • ํ† ์ต๊ธฐ์ถœ
  • ์ฝ”ํ…Œ
  • ํ† ์ตRC
  • Python
  • ํ† ์ต๋ฌด๋ฃŒ๊ฐ•์˜
  • ๋‚ด์žฅํ•จ์ˆ˜
  • greedy algorithm
  • ํ•ด์ปค์ŠคํŒŒ๋žญ์ด
  • ์™„์ „ํƒ์ƒ‰
  • ํ† ์ต์ ์ˆ˜
  • ํ•ด์ปค์Šคํ† ์ต
  • ๊ทธ๋ฆฌ๋””
  • mysql
  • 2์ฐจ์› ๋ฐฐ์—ด
  • sort
  • UNION ALL
  • ๋‹ค์ต์ŠคํŠธ๋ผ
  • ๋ฐฑ์ค€
  • ํ† ์ต๋…ํ•™
  • ๊ตฌํ˜„
  • ์ •๋ ฌ
  • ๋ฆฌ์ŠคํŠธ
  • Union
  • ํ† ์ต๋ฌด๋ฃŒ์ž๋ฃŒ
  • ์˜ค๋ธ”์™„
  • BFS

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ


Owner : ๊น€์‹ ์˜
Naver Blog

hELLO ยท Designed By ์ •์ƒ์šฐ.
Hiya_

๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ

[JAVA] ๋‹คํ˜•์„ฑ | ์˜ค๋ฒ„๋ผ์ด๋”ฉ vs ์˜ค๋ฒ„๋กœ๋”ฉ | ๋‹ค์šด์บ์ŠคํŒ… vs ์—…์บ์ŠคํŒ…
๐Ÿ“‚Language/JAVA

[JAVA] ๋‹คํ˜•์„ฑ | ์˜ค๋ฒ„๋ผ์ด๋”ฉ vs ์˜ค๋ฒ„๋กœ๋”ฉ | ๋‹ค์šด์บ์ŠคํŒ… vs ์—…์บ์ŠคํŒ…

2023. 5. 2. 15:11

 

๋ชฉ์ฐจ

๋‹คํ˜•์„ฑ์ด๋ž€?

์˜ค๋ฒ„๋ผ์ด๋”ฉ vs ์˜ค๋ฒ„๋กœ๋”ฉ

(๊ฐ์ฒด ์ฐธ์กฐ ๋ณ€์ˆ˜) ํ˜•๋ณ€ํ™˜

๋‹ค์šด์บ์ŠคํŒ… vs ์—…์บ์ŠคํŒ…

 

 

 


 

๋‹คํ˜•์„ฑ์ด๋ž€?

๋‹คํ˜•์„ฑ์ด๋ž€, ํ•˜๋‚˜์˜ ๊ฐ์ฒด๊ฐ€ ๋‹ค์–‘ํ•œ ์†์„ฑ์ด๋‚˜ ํ˜•ํƒœ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP, Object-Oriented Programming)์˜ ๋Œ€ํ‘œ์ ์ธ ํŠน์ง• ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

 

์˜ค๋ฒ„๋ผ์ด๋”ฉ(Overriding), ์˜ค๋ฒ„๋กœ๋”ฉ(Overloading), ๊ฐ์ฒด ์ฐธ์กฐ ๋ณ€์ˆ˜์˜ ํ˜•๋ณ€ํ™˜(Casting)์ด ๋Œ€ํ‘œ์  ์˜ˆ์ด๋‹ค.

 

 

 

์˜ค๋ฒ„๋ผ์ด๋”ฉ vs ์˜ค๋ฒ„๋กœ๋”ฉ (Overriding vs Overloading)

์ด๋ฆ„ ์„ค๋ช… ์˜ˆ์‹œ
์˜ค๋ฒ„๋ผ์ด๋”ฉ(Overriding) ์ž์‹ ํด๋ž˜์Šค์—์„œ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ํ•จ์ˆ˜๋ฅผ ์žฌ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ  
์˜ค๋ฒ„๋กœ๋”ฉ(Overloading) ๋™์ผํ•œ ์ด๋ฆ„์„ ๊ฐ€์ง„ ํ•จ์ˆ˜๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋งŒ ๋‹ฌ๋ฆฌํ•˜์—ฌ ์ž‘์„ฑํ•œ ๊ฒƒ ํด๋ž˜์Šค์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋งŒ ๋‹ค๋ฅธ ๋‹ค์–‘ํ•œ ์ƒ์„ฑ์ž

 

์™ผ์ชฝ ์ฝ”๋“œ๊ฐ€ ์˜ค๋ฒ„๋กœ๋”ฉ, ์˜ค๋ฅธ์ชฝ ์ฝ”๋“œ๊ฐ€ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด๋‹ค.

๋‘˜์˜ ๊ณตํ†ต์ ์€ ํ•จ์ˆ˜๋ช…์ด ๊ฐ™๋‹ค๋Š” ์ ์ด๋‹ค.

 

ํ•˜์ง€๋งŒ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์€ ์ƒํ•˜ ๊ด€๊ณ„์˜ ํด๋ž˜์Šค ๋‚ด์—์„œ ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ํ•จ์ˆ˜๋ฅผ ๋ฎ์–ด ์ž‘์„ฑํ•œ๋‹ค๋Š” ์ ์—์„œ ๋‹ค๋ฅด๋‹ค.

 

์˜ค๋ฒ„๋กœ๋”ฉ์„ ๋ณด๋ฉด Car์˜ ์ƒ์„ฑ์ž๊ฐ€ 2๊ฐœ๋‚˜ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ ๋‘ ์ƒ์„ฑ์ž์˜ ์ฐจ์ด์ ์€ ๋งค๊ฐœ๋ณ€์ˆ˜์ด๋‹ค.

์ƒ์„ฑ์ž ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์–ด๋–ค ํ•จ์ˆ˜๋ผ๋„ ์ด๋ฆ„์ด ๊ฐ™์ง€๋งŒ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋‹ค๋ฅด๋ฉด ์˜ค๋ฒ„๋กœ๋”ฉ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ๋ณด๋ฉด ์ƒ์œ„ ํด๋ž˜์Šค์ธ Car์—์„œ ์ž‘์„ฑํ•œ horn ํ•จ์ˆ˜๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ๋™์ผํ•œ ํ•จ์ˆ˜๋ช…๊ณผ ๋™์ผํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ

์žฌ์ •์˜ ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. Truck ๊ฐ์ฒด์—์„œ horn์„ ํ˜ธ์ถœ ์‹œ ์žฌ์ •์˜ํ•œ ๋กœ์ง์œผ๋กœ ์‹คํ–‰๋œ๋‹ค.

 

์˜ค๋ฒ„๋กœ๋”ฉ ์˜ค๋ฒ„๋ผ์ด๋”ฉ

 

 

 

(๊ฐ์ฒด ์ฐธ์กฐ ๋ณ€์ˆ˜) ํ˜•๋ณ€ํ™˜

ํ•˜๋‚˜์˜ ํƒ€์ž…์„ ๋‹ค๋ฅธ ํƒ€์ž…์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ํƒ€์ž… ๋ณ€ํ™˜ ํ˜น์€ ํ˜•๋ณ€ํ™˜์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

ํ˜•๋ณ€ํ™˜์€ '์ž๋™ ํ˜•๋ณ€ํ™˜(Promotion)'๊ณผ '๊ฐ•์ œ ํ˜•๋ณ€ํ™˜(Casting)'์œผ๋กœ ๋‚˜๋ˆ ์ง„๋‹ค.

 

ํ•ด๋‹น ๊ธ€์—์„œ๋Š” ๊ฐ์ฒด ์ฐธ์กฐ ๋ณ€์ˆ˜์˜ ๊ฐ•์ œ ํ˜•๋ณ€ํ™˜์„ ์ค‘์‹ฌ์œผ๋กœ ์ด์•ผ๊ธฐ ํ•จ์œผ๋กœ

๊ธฐ๋ณธ ํƒ€์ž…์˜ ํ˜•๋ณ€ํ™˜์„ ๋” ๊ณต๋ถ€ํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

 

 

ํด๋ž˜์Šค ํƒ€์ž…์˜ ๋ณ€ํ™˜, ์ฆ‰ ๊ฐ์ฒด ์ฐธ์กฐ ๋ณ€์ˆ˜์˜ ํ˜•๋ณ€ํ™˜ ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ๋‹ค์šด์บ์ŠคํŒ…๊ณผ ์—…์บ์ŠคํŒ…์œผ๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค.

 

 

 

๋‹ค์šด/์—… ์บ์ŠคํŒ… ํ•™์Šต ์ „ ๊ฐ์ฒด ์ฐธ์กฐ ๋ณ€์ˆ˜ ์„ ์–ธ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž

 

์•„๋ž˜ ์ฝ”๋“œ์—์„œ ์ƒ์„ฑ ๊ฐ์ฒด์™€ ๋™์ผํ•œ ํƒ€์ž…์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์€ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ  ๋‹น์—ฐํ•œ ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ ๋‘˜์€ ์ƒ์†๊ด€๊ณ„์ด๋ฏ€๋กœ IS-A ๊ด€๊ณ„์ž„๊ณผ ๋™์‹œ์— ํ˜•๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•œ ๊ด€๊ณ„์ด๋‹ค.

 

IS-A๊ด€๊ณ„๋Š” "A๋Š” B์ด๋‹ค."๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ด€๊ณ„๋กœ, "Truck์€ Car์ด๋‹ค"๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ "Car๋Š” Truck์ด๋‹ค"๋Š” ์„ฑ๋ฆฝํ•  ์ˆ˜ ์—†๋‹ค.

 

 

 

 

๋‹ค์šด์บ์ŠคํŒ… vs ์—…์บ์ŠคํŒ… (Downcasting vs Upcasting)

๋ช…์นญ ์„ค๋ช…
๋‹ค์šด์บ์ŠคํŒ…(Downcasting) ์ƒ์œ„(๋ถ€๋ชจ) ํด๋ž˜์Šค ํƒ€์ž…์˜ ์ฐธ์กฐ ๋ณ€์ˆ˜๊ฐ€ ํ•˜์œ„(์ž์‹) ํด๋ž˜์Šค ๋ณ€์ˆ˜๋กœ ํƒ€์ž…์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ
์—…์บ์ŠคํŒ…(Upcasting) ํ•˜์œ„(์ž์‹) ํด๋ž˜์Šค ํƒ€์ž…์˜ ์ฐธ์กฐ ๋ณ€์ˆ˜๊ฐ€ ์ƒ์œ„(๋ถ€๋ชจ) ํด๋ž˜์Šค ๋ณ€์ˆ˜๋กœ ํƒ€์ž…์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ

 

์•„๋ž˜ ์—…์บ์ŠคํŒ… ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž

๋จผ์ € Truck ํด๋ž˜์Šค ํƒ€์ž…์œผ๋กœ Truck ๊ฐ์ฒด car1๋Š” Car์˜ wheel๊ณผ Truck์˜ truck_bed ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํ•˜์ง€๋งŒ Car ํด๋ž˜์Šค ํƒ€์ž…์œผ๋กœ Truck ํด๋ž˜์Šค ํƒ€์ž…์˜ car1 ๊ฐ์ฒด๋ฅผ ์—…์บ์ŠคํŒ…ํ•˜๋ฉด Truck ํด๋ž˜์Šค์—๋งŒ ์žˆ๋Š” truck_bed๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

์ด์ œ ๋‹ค์šด์บ์ŠคํŒ… ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด๋„๋ก ํ•˜์ž

Car ํด๋ž˜์Šค ํƒ€์ž… ๋ณ€์ˆ˜ car1์ด Truck ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.

car1์˜ ํƒ€์ž…์€ Car์ด๋ฏ€๋กœ Truck์˜ truck_bed ๋ณ€์ˆ˜์—๋Š” ์ ‘๊ทผ ํ•  ์ˆ˜ ์—†๋‹ค.

 

ํ•˜์ง€๋งŒ Truck ํƒ€์ž…์œผ๋กœ ํ˜•๋ณ€ํ™˜์„ ํ•œ ๋ณ€์ˆ˜ car2๋Š” tuck_bed์—๋„ wheel์—๋„ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

 

 

 

 


REFERENCE

https://inpa.tistory.com/entry/JAVA-%E2%98%95-%ED%83%80%EC%9E%85-%ED%98%95%EB%B3%80%ED%99%98-%EC%A2%85%EB%A5%98-%EB%B0%A9%EB%B2%95-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC

 

โ˜• JAVA ํƒ€์ž… ํ˜•๋ณ€ํ™˜ ์›๋ฆฌ & ๋ฐฉ๋ฒ• - ์™„๋ฒฝ ์ •๋ฆฌ

ํƒ€์ž… ๋ณ€ํ™˜ (Type Conversion) ํ•˜๋‚˜์˜ ํƒ€์ž…์„ ๋‹ค๋ฅธ ํƒ€์ž…์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ํƒ€์ž… ๋ณ€ํ™˜ ํ˜น์€ ํ˜•๋ณ€ํ™˜ ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด byte ํƒ€์ž…์„ int ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ ๋ฐ˜๋Œ€๋กœ int ํƒ€์ž…์„ byte ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š”

inpa.tistory.com

https://kadosholy.tistory.com/99

 

[Java] ์ž๋ฐ” - ๋‹คํ˜•์„ฑ์˜ ์ดํ•ด (ํ˜•๋ณ€ํ™˜ ๋ฐ instanceof ์—ฐ์‚ฐ์ž)

์ž๋ฐ” - ๋‹คํ˜•์„ฑ์˜ ์ดํ•ด ๋ฐ ์˜ˆ์ œ ์ž๋ฐ” ๋‹คํ˜•์„ฑ(polymorphism)์€ ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด์˜ ํŠน์ง• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”์—์„œ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋‚˜ ๋ฉ”์†Œ๋“œ๊ฐ€ ์—ฌ๋Ÿฌํ˜•ํƒœ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๋‹คํ˜•์„ฑ์˜ ํŠน์ง•์„ ์ž˜ ์•Œ๊ณ  ์žˆ์ง€ ์•Š์œผ

kadosholy.tistory.com

 

'๐Ÿ“‚Language > JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JAVA] ์ž…๋ ฅ ๋ฐ›๊ธฐ | Scanner | BufferedReader | StringTokenizer  (0) 2023.04.27
    '๐Ÿ“‚Language/JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [JAVA] ์ž…๋ ฅ ๋ฐ›๊ธฐ | Scanner | BufferedReader | StringTokenizer
    Hiya_
    Hiya_
    ํ•˜์–€ ์ฒœ๊ณผ ๋ฐ”๋žŒ๋งŒ ์žˆ๋‹ค๋ฉด ์–ด๋””๋“  ๊ฐˆ ์ˆ˜ ์žˆ์–ด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”