yeony._.
πŸ’μ½©λΆ€πŸ’
yeony._.
전체 방문자
였늘
μ–΄μ œ
  • λΆ„λ₯˜ 전체보기 (99)
    • πŸ’»Programming (91)
      • β˜•οΈJava (19)
      • πŸ’½Oracle (21)
      • πŸ‘©‍🎨HTML&CSS (12)
      • 🎨 μ‹€μŠ΅ (4)
      • πŸƒ‍♀️JavaScript (25)
      • JSP (8)
      • πŸƒSpring (0)
      • πŸ₯§python (0)
      • API (0)
      • 😈Git (1)
    • 🀫Private (0)
      • -- (0)
      • + (0)
      • S (0)
      • P (0)
      • B (0)
    • 😎Project (4)
      • πŸ—“οΈwbs ν”„λ‘œμ νŠΈ (3)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝

곡지사항

인기 κΈ€

νƒœκ·Έ

  • HTML #CSS #HTML이미지 #HTML이미지에글씨 #HTML이미지에이미지

졜근 λŒ“κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
yeony._.

πŸ’μ½©λΆ€πŸ’

[JAVA]객체지ν–₯_상속과 κ΄€λ ¨ν•œ μš©μ–΄(2)
πŸ’»Programming/β˜•οΈJava

[JAVA]객체지ν–₯_상속과 κ΄€λ ¨ν•œ μš©μ–΄(2)

2022. 7. 25. 20:42

상속과 κ΄€ν•œ μ—¬λŸ¬ 객체지ν–₯ μš©μ–΄λ“€βœŒοΈ

01 . μ˜€λ²„λΌμ΄λ”©

- μƒμœ„ 클래슀λ₯Ό 상속 받은 ν•˜μœ„ ν΄λž˜μŠ€μ—μ„œ μƒμœ„ ν΄λž˜μŠ€μ— μ •μ˜λœ λ©”μ†Œλ“œλ₯Ό μž¬μ •μ˜(overriding) ν•˜λŠ” 것
- μƒμœ„ 클래슀의 λ©”μ†Œλ“œ κΈ°λŠ₯을 μœ μ§€ν•˜λ©΄μ„œ 상황에 따라 ν•˜μœ„ ν΄λž˜μŠ€μ—μ„œ λ³€ν˜•λœ κΈ°λŠ₯을 μ‚¬μš©ν•  경우 μ‚¬μš©ν•˜λ©° λ‹€ν˜•μ„±(Polymorphism)     κ΅¬ν˜„μ˜ 핡심 원리

override 된 κ²½μš°μ—λŠ” μž¬μ •μ˜λœ λ©”μ†Œλ“œκ°€ 호좜이 되고, μƒμœ„ν΄λž˜μŠ€λŠ” λ©”μ†Œλ“œλŠ” μˆ¨λŠ”λ‹€.

➑ 아버지가 λ¬Όλ €μ£Όμ‹  κ°•μ˜μ‹€μ„ μžμ‹μ΄ PC방으둜 λ³€κ²½ν–ˆλŠ”λ°, 잠깐 μ•„λ²„μ§€ν•œν…Œ 봐달라고 ν•œλ‹€λ©΄? 
μ•„λ²„μ§€λŠ” κ°•μ˜μ‹€μ„ λ³Ό 수 μ—†κ³ , PC방을 λ³΄λŠ” 것과 같은 원리!! 😎

 

02. μΊμŠ€νŒ…

ν˜• λ³€ν™˜μ€ 상속 κ΄€κ³„μ—μ„œλ§Œ κ°€λŠ₯ν•œ κ²ƒμœΌλ‘œ ν˜•μ œ κ΄€κ³„λž€ μ—†λ‹€. (ν˜•μ œλŠ” 남이닀)

1.  μ—… μΊμŠ€νŒ…(Up-casting)

- νŠΉμ • κ°μ²΄κ°€ ν•˜μœ„ ν΄λž˜μŠ€μ˜ ν˜•μ—μ„œ μƒμœ„μ˜ ν΄λž˜μŠ€μ˜ ν˜•μœΌλ‘œ μΊμŠ€νŒ…λ˜λŠ” κ²ƒ
- ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ μ‹œ μžλ™ νƒ€μž… λ³€ν™˜(Promotion)이 μΌμ–΄λ‚˜λ―€λ‘œ λ¬΅μ‹œμ μœΌλ‘œ μΊμŠ€νŒ…μ΄ κ°€λŠ₯

μ–Έμ œλ‚˜ κ°€λŠ₯ν•˜λ©°, ν˜•λ³€ν™˜μ„ ν•˜μ§€ μ•Šμ•„λ„ λœλ‹€.

ν•„λ“œλŠ” μ—…μΊμŠ€νŒ…λ˜μ–΄ μžˆμ–΄λ„ 무쑰건 μžμ‹  것. μ—†μœΌλ©΄ μƒμœ„ 것.

μƒμœ„ν΄λž˜μŠ€ 객체λͺ… = ν•˜μœ„ν΄λž˜μŠ€κ°μ²΄;
μΈν„°νŽ˜μ΄μŠ€ 객체λͺ… = κ΅¬ν˜„ν΄λž˜μŠ€κ°μ²΄;

2.  λ‹€μš΄ μΊμŠ€νŒ…(Down-casting) 

- μƒμœ„ 클래슀의 객체λ₯Ό ν•˜μœ„ 클래슀의 객체에 λŒ€μž…ν•˜λŠ” κ²ƒμœΌλ‘œ μ—… μΊμŠ€νŒ…(up-casting)ν•œ 것을 λ‹€μ‹œ μ›λž˜μ˜ ν˜•μœΌλ‘œ λ³€ν™˜
- 
μ—… μΊμŠ€νŒ… 된 κ²ƒλ§Œ λ‹€μš΄ μΊμŠ€νŒ… κ°€λŠ₯
- λ¬΅μ‹œμ μœΌλ‘œ μΊμŠ€νŒ…μ΄ λΆˆκ°€λŠ₯ν•˜λ©°, λ°˜λ“œμ‹œ λͺ…μ‹œμ μΈ ν˜• λ³€ν™˜(κ°•μ œ μΊμŠ€νŒ…)을 ν•΄μ•Ό ν•œλ‹€. ⭐️

ν•˜μœ„ν΄λž˜μŠ€ 객체λͺ… = (ν•˜μœ„ν΄λž˜μŠ€) μƒμœ„ν΄λž˜μŠ€κ°μ²΄; 
κ΅¬ν˜„ν΄λž˜μŠ€ 객체λͺ… = (κ΅¬ν˜„ν΄λž˜μŠ€) μΈν„°νŽ˜μ΄μŠ€κ°μ²΄;

 

3.  instacncof μ—°μ‚°μž

- μ£Όμ–΄μ§„ 객체가 μ–΄λ–€ 클래슀 λ˜λŠ” κ·Έ ν΄λž˜μŠ€κ°€ μƒμ†ν•˜λŠ” ν•˜μœ„ 클래슀의 μΈμŠ€ν„΄μŠ€μΈμ§€λ₯Ό κ²€μ‚¬ν•˜κΈ° μœ„ν•΄ μ‚¬μš©  (true/flase)

-ν˜•μ‹
객체λͺ… instanceof ν΄λž˜μŠ€λͺ… 

객체λͺ… instanceof μΈν„°νŽ˜μ΄μŠ€λͺ…

 

03. Staticκ³Ό final μˆ˜μ •μž

1. static 

static μ§€μ‹œμžλ‘œ μ§€μ •λœ μš”μ†Œκ°€ νŠΉμ • μΈμŠ€ν„΄μŠ€μ— μ†ν•œ 것이 μ•„λ‹ˆκ³ , ν•΄λ‹Ή ν΄λž˜μŠ€μ— μ†ν•˜λŠ” 것을 μ˜λ―Έν•˜λŠ” κ²ƒμœΌλ‘œ 클래슀λ₯Ό λ©”λͺ¨λ¦¬μ— loadingν•  λ•Œ μžλ°” λ©”λͺ¨λ¦¬ μ˜μ—­ 쀑 λ©”μ†Œλ“œ μ˜μ—­μ— μ μž¬λœλ‹€. 즉, 객체가 μƒμ„±λ˜κΈ° 전에 λ¨Όμ € λ©”λͺ¨λ¦¬ 상에 λ‘œλ”©λ˜μ–΄μ§„λ‹€.

 

2. final μˆ˜μ •μž 

μƒμˆ˜μ˜ 의미λ₯Ό κ°€μ§€κ³  μžˆλŠ” ν‚€μ›Œλ“œλ‘œμ„œ ν΄λž μŠ€μ™€ λ©”μ†Œλ“œ, 멀버 λ³€μˆ˜, μ§€μ—­λ³€μˆ˜, λ©”μ†Œλ“œ 인자 등에 μ‚¬μš© κ°€λŠ₯함

➑  λŒ€ν‘œμ μΈ final 클래슀 : String, StringBuffer, StringBuilder 

 

β‘   final  클래슀

final ν΄λž˜μŠ€λŠ” μ ˆλŒ€λ‘œ μžμ‹μ„ κ°€μ§ˆ 수 μ—†λŠ” 클래슀 

[μ ‘κ·Όμ œν•œμž] final class ν΄λž˜μŠ€μ΄λ¦„ { // 클래슀 κ΅¬ν˜„
}

β‘‘ final λ³€μˆ˜

ν•œ 번 값을 μ§€μ •ν–ˆμœΌλ©΄ μžλ™μ μœΌλ‘œ 값을 λ°”κΏ€ 수 μ—†μŒ 

- λ©”μ†Œλ“œ λ‚΄μ—μ„œ μƒμˆ˜ μ„ μ–Έ

final λ°μ΄ν„°ν˜• λ³€μˆ˜λͺ… = μ΄ˆκΈ°κ°’;

- 클래슀 λ©€λ²„μ—μ„œ μƒμˆ˜ μ„ μ–Έ

[μ ‘κ·Όμ œμ–΄μž] [static]final λ°μ΄ν„°ν˜• λ³€μˆ˜λͺ… = [μ΄ˆκΈ°κ°’];

β‘’ final λ©”μ†Œλ“œ

λ©”μ†Œλ“œμ— final ν‚€μ›Œλ“œλ₯Ό 뢙이면 μ˜€λ²„λΌμ΄λ”©(μž¬μ •μ˜) λΆˆκ°€λŠ₯

ν΄λž˜μŠ€κ°€ final둜 μ„ μ–Έλœ 경우 λ©”μ†Œλ“œλŠ” λ³„λ„λ‘œ λͺ…μ‹œν•˜μ§€ μ•Šμ•„λ„ final λ©”μ†Œλ“œ 

[μ ‘κ·Όμ œν•œμž] final λ°˜ν™˜ν˜• λ©”μ†Œλ“œλͺ…() { // λ©”μ†Œλ“œ κ΅¬ν˜„
}

 

'πŸ’»Programming > β˜•οΈJava' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[JAVA] DAO와 VO μ •μ˜μ™€ μ‚¬μš©λ²•  (0) 2022.07.31
[JAVA] μ—΄κ±°ν˜• νƒ€μž…  (0) 2022.07.27
[JAVA] 객체지ν–₯_μΈν„°νŽ˜μ΄μŠ€  (0) 2022.07.26
[JAVA]객체지ν–₯_좔상 클래슀  (0) 2022.07.26
[JAVA] 객체지ν–₯_상속  (0) 2022.07.25
    'πŸ’»Programming/β˜•οΈJava' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [JAVA] μ—΄κ±°ν˜• νƒ€μž…
    • [JAVA] 객체지ν–₯_μΈν„°νŽ˜μ΄μŠ€
    • [JAVA]객체지ν–₯_좔상 클래슀
    • [JAVA] 객체지ν–₯_상속
    yeony._.
    yeony._.
    힘 μ„Έμ§€λŠ” μ•Œμ•½πŸ’ŠπŸ’ŠπŸ’Š

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”