Amenable
Amenable's Blog
Amenable
  • λΆ„λ₯˜ 전체보기 (189)
    • πŸ“‚ JAVA (87)
      • μ΄νŽ™ν‹°λΈŒ μžλ°” (65)
      • μ£Όμš” κ°œλ… (22)
    • πŸ“‚ 개발 μ„œμ  (22)
      • μ‹€μš©μ£Όμ˜ ν”„λ‘œκ·Έλž˜λ¨Έ (1)
      • 객체지ν–₯의 사싀과 μ˜€ν•΄ (2)
      • 클린 μ½”λ“œ (8)
      • ν•¨κ»˜ 자라기 (1)
      • 그림으둜 λ°°μš°λŠ” HTTP&Network Basic (10)
    • πŸ“‚ λ°μ΄ν„°λ² μ΄μŠ€ (8)
      • κ°œλ… (8)
      • λ¬Έμ œν’€μ΄ (0)
    • πŸ“‚ λ„€νŠΈμ›Œν¬ (14)
      • κ°œλ… (6)
      • 성곡과 μ‹€νŒ¨λ₯Ό κ²°μ •ν•˜λŠ” 1%의 λ„€νŠΈμ›Œν¬ 원리 (8)
    • πŸ“‚ μŠ€ν”„λ§ (13)
      • κΈ°λ³Έ κ°œλ… (13)
    • πŸ“‚ WEB (5)
    • πŸ“‚ 자료ꡬ쑰 (12)
      • κ°œλ… (2)
      • μ •λ ¬ (8)
      • 트리 (2)
    • πŸ“‚ μ•Œκ³ λ¦¬μ¦˜ (10)
      • μ΅œμ†Œμ‹ μž₯트리 (2)
      • μ΅œλ‹¨ 경둜 (2)
      • λ¬Έμžμ—΄ (2)
      • ETC (4)
    • πŸ“‚ μ•Œκ³ λ¦¬μ¦˜_λ¬Έμ œν’€μ΄ (4)
      • BOJ_λ°±μ€€ (4)
    • πŸ“‚ ν”„λ‘œκ·Έλž˜λ° (3)
    • πŸ“‚ DevOps (2)
      • 배포 (2)
    • πŸ“‚ ν›„κΈ° (8)
      • μš°μ•„ν•œ ν…Œν¬μ½”μŠ€(ν”„λ¦¬μ½”μŠ€) (4)
      • 2023λ…„ (3)
      • 2024λ…„ (1)
    • πŸ“‚ 회고 (1)
      • 2023λ…„ (1)

λΈ”λ‘œκ·Έ 메뉴

  • πŸš€ GitHub

ν‹°μŠ€ν† λ¦¬

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

Amenable's Blog

μΆ”μƒν΄λž˜μŠ€(Abstract Class) VS μΈν„°νŽ˜μ΄μŠ€(Interface)
πŸ“‚ JAVA/μ£Όμš” κ°œλ…

μΆ”μƒν΄λž˜μŠ€(Abstract Class) VS μΈν„°νŽ˜μ΄μŠ€(Interface)

2023. 6. 13. 14:44

  μ§€κΈˆκΉŒμ§€ μΆ”μƒν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚΄νŽ΄λ³΄μ•˜λ‹€. μΆ”μƒν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€λŠ” 각각 κ³ μœ ν•œ λͺ‡λͺ‡ νŠΉμ§•μ„ κ°€μ§€κ³  μžˆμ§€λ§Œ, "좔상 λ©”μ„œλ“œλ₯Ό 톡해 상속/κ΅¬ν˜„μ„ ν†΅ν•œ λ©”μ„œλ“œ κ°•μ œ κ΅¬ν˜„ κ·œμΉ™μ„ κ°€μ§€λŠ” 좔상화 클래슀"λΌλŠ” μ μ—μ„œ 맀우 λΉ„μŠ·ν•˜λ‹€λŠ” λŠλ‚Œμ„ 받을 것이닀.

  λ˜ν•œ, 'κ·Έλ ‡λ‹€λ©΄ λͺ¨λ“  λ©”μ„œλ“œλ₯Ό 좔상 λ©”μ„œλ“œλ‘œ λ§Œλ“€μ–΄μ„œ μ‚¬μš©ν•˜λ©΄ 좔상 ν΄λž˜μŠ€κ°€ μΈν„°νŽ˜μ΄μŠ€ μ—­ν•  ν•  수 μžˆλŠ”λ° μ™œ ꡳ이 μΈν„°νŽ˜μ΄μŠ€κ°€ μ‘΄μž¬ν•˜λŠ” 걸까? 'λΌλŠ” μ˜λ¬Έλ„ 생길 수 μžˆλ‹€.

 

  κΈ°λŠ₯적인 츑면을 λ‹€ μ œμ™Έν•˜κ³ , 두 개λ₯Ό λ‚˜λˆ„μ–΄μ„œ μ‚¬μš©ν•˜λŠ” κ°€μž₯ 큰 μ΄μœ λŠ” μ‚¬μš© λͺ©μ κ³Ό μ‚¬μš© μ‹œκΈ°κ°€ λ‹€λ₯΄λ‹€λŠ” 것이닀.

  κ·ΈλŸ¬λ―€λ‘œ '좔상 ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€μ˜ μ‚¬μš© λͺ©μ κ³Ό μ‚¬μš© μ‹œκΈ°μ˜ 차이'λ₯Ό μ•Œμ•„λ³΄κ³ , 'κΈ°λŠ₯적인 차이점'에 λŒ€ν•΄μ„œλ„ μΆ”κ°€μ μœΌλ‘œ 정리해 보도둝 ν•˜μž.

 

 

πŸ“™ 1. μ‚¬μš© λͺ©μ κ³Ό μ‚¬μš© μ‹œκΈ°μ˜ 차이

πŸ“Œ 1. μ‚¬μš© λͺ©μ 

  • 좔상 클래슀
    extends(상속, ν™•μž₯의 λŠλ‚Œ) ν‚€μ›Œλ“œ κ·ΈλŒ€λ‘œ μžμ‹ μ˜ κΈ°λŠ₯듀을 ν•˜μœ„λ‘œ ν™•μž₯μ‹œν‚€λŠ” κ²ƒμœΌλ‘œ λ³Ό μˆ˜ μžˆλ‹€.
    좔상 ν΄λž˜μŠ€λ₯Ό μƒμ†λ°›μ•„μ„œ κΈ°λŠ₯을 μ΄μš©ν•˜κ³  ν™•μž₯μ‹œν‚€λŠ”λ° λͺ©μ μ΄ μžˆλ‹€.
  • μΈν„°νŽ˜μ΄μŠ€
    implements(상속, κ΅¬ν˜„μ˜ λŠλ‚Œ) ν‚€μ›Œλ“œμ²˜λŸΌ μΈν„°νŽ˜μ΄μŠ€μ— μ •μ˜λœ λ©”μ„œλ“œλ₯Ό 각 클래슀의 λͺ©μ μ— 맞게 λ™μΌν•œ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” κ²ƒμœΌλ‘œ λ³Ό 수 μžˆλ‹€.
    κ΅¬ν˜„μ„ κ°•μ œν•¨μœΌλ‘œμ¨ κ΅¬ν˜„ κ°μ²΄κ°€ κ°™μ€ λ™μž‘을 ν•œλ‹€λŠ” κ²ƒμ„ λ³΄μž₯ν•  μˆ˜ μžˆλ‹€.

πŸ“Œ 2. μ‚¬μš© μ‹œκΈ°

  • 좔상 클래슀
    상속 κ΄€κ³„λ₯Ό νƒ€κ³  μ˜¬λΌκ°”을 λ•Œ, κ°™μ€ λΆ€λͺ¨ ν΄λž˜μŠ€λ₯Ό μƒμ†ν•˜λ©° λΆ€λͺ¨ ν΄λž˜μŠ€κ°€ κ°€μ§„ κΈ°λŠ₯듀을 κ΅¬ν˜„ν•΄μ•Ό ν•˜λŠ” κ²½μš°μ— μ‚¬μš©
    상속 κ΄€κ³„λ₯Ό νƒ€κ³  μ˜¬λΌκ°”을 λ•Œ κ°™μ€ μ‘°μƒν΄λž˜μŠ€λ₯Ό μƒμ†ν•˜λŠ”λ° κΈ°λŠ₯κΉŒμ§€ μ™„μ „νžˆ λ˜‘같은 κΈ°λŠ₯이 ν•„μš”ν•œ κ²½μš°
  • μΈν„°νŽ˜μ΄μŠ€
    상속 κ΄€κ³„λ₯Ό νƒ€κ³  μ˜¬λΌκ°”을 λ•Œ, λ‹€λ₯Έ λΆ€λͺ¨ ν΄λž˜μŠ€λ₯Ό μƒμ†ν•˜λ”라도 κ°™μ€ κΈ°λŠ₯이 ν•„μš”ν•œ κ²½μš°μ— μ‚¬μš©
    상속 κ΄€κ³„λ₯Ό νƒ€κ³  μ˜¬λΌκ°”을 λ•Œ λ‹€λ₯Έ μ‘°μƒν΄λž˜μŠ€λ₯Ό μƒμ†ν•˜λŠ”λ° κ°™μ€ κΈ°λŠ₯이 ν•„μš”ν•  κ²½μš°μ— μ‚¬μš©

 

 

πŸ“™ 2. κΈ°λŠ₯적인 차이

  이전 κΈ€μ—μ„œ μΆ”μƒν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€μ˜ κΈ°λŠ₯듀이 μ •λ¦¬λ˜μ–΄ μžˆμœΌλ―€λ‘œ, μ΄λ²ˆμ—λŠ” ν‘œλ‘œλ§Œ κ°„λ‹¨νžˆ μ •λ¦¬ν•˜κ³ μž ν•œλ‹€.

  좔상 클래슀 μΈν„°νŽ˜μ΄μŠ€
μ‚¬μš© ν‚€μ›Œλ“œ abstract interface
상속 ν‚€μ›Œλ“œ extends implements
닀쀑 상속 κ°€λŠ₯ μ—¬λΆ€ λΆˆκ°€λŠ₯ κ°€λŠ₯
(ν΄λž˜μŠ€λŠ” 닀쀑 κ΅¬ν˜„, μΈν„°νŽ˜μ΄μŠ€ λΌλ¦¬λŠ” 닀쀑 상속)
μ‚¬μš© κ°€λŠ₯ λ³€μˆ˜ μ œν•œ μ—†μŒ static final
(μƒμˆ˜)
μ‚¬μš© κ°€λŠ₯ μ ‘κ·Ό μ œμ–΄μž μ œν•œ μ—†μŒ public
μ‚¬μš© κ°€λŠ₯ λ©”μ„œλ“œ μ œν•œ μ—†μŒ abstract method
default method
static method
private method
곡톡점 1. 좔상 λ©”μ„œλ“œλ₯Ό κ°€μ§€κ³  μžˆλ‹€.
2. μΈμŠ€ν„΄μŠ€ν™” ν•  수 μ—†λ‹€. (new μƒμ„±μž μ‚¬μš© λΆˆκ°€)
3. 상속/κ΅¬ν˜„ν•œ κ΅¬ν˜„μ²΄μ˜ μΈμŠ€ν„΄μŠ€λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.
4. 상속/κ΅¬ν˜„ν•œ ν΄λž˜μŠ€λŠ” 좔상 λ©”μ„œλ“œλ₯Ό λ°˜λ“œμ‹œ κ΅¬ν˜„ν•΄μ•Ό ν•œλ‹€.

 

ν•΄λ‹Ή 글은
Jan92 λ‹˜μ˜ 'μžλ°” 좔상 ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€μ˜ 차이점 μ΄ν•΄ν•˜κΈ°',
κ°•κ΄€μš° λ‹˜μ˜ 'μžλ°”μ˜ 좔상 ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€',
마이자λͺ½ λ‹˜μ˜ '[JAVA] μΆ”μƒν΄λž˜μŠ€ VS μΈν„°νŽ˜μ΄μŠ€ μ™œ μ‚¬μš©ν• κΉŒ? 차이점, 예제둜 확인 :: 마이자λͺ½',
Inpa λ‹˜μ˜ 'μΈν„°νŽ˜μ΄μŠ€ vs μΆ”μƒν΄λž˜μŠ€ μš©λ„ 차이점 - μ™„λ²½ 이해'
λ₯Ό μ°Έκ³ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

'πŸ“‚ JAVA > μ£Όμš” κ°œλ…' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

μžλ°”μ˜ 컴파일 κ³Όμ •  (0) 2023.06.19
μΈν„°νŽ˜μ΄μŠ€(Interface)  (0) 2023.06.13
좔상 클래슀(Abstract Class)  (2) 2023.06.11
μ œλ„€λ¦­(Generics) - 곡변(Covariant), λΆˆκ³΅λ³€(Invariant), λ°˜κ³΅λ³€(Contravariant)  (0) 2023.05.29
ν˜•λ³€ν™˜(μΊμŠ€νŒ…, Casting) - μ—…μΊμŠ€νŒ…(Up-Casting), λ‹€μš΄μΊμŠ€νŒ…(Down-Casting)  (0) 2023.05.24
    'πŸ“‚ JAVA/μ£Όμš” κ°œλ…' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • μžλ°”μ˜ 컴파일 κ³Όμ •
    • μΈν„°νŽ˜μ΄μŠ€(Interface)
    • 좔상 클래슀(Abstract Class)
    • μ œλ„€λ¦­(Generics) - 곡변(Covariant), λΆˆκ³΅λ³€(Invariant), λ°˜κ³΅λ³€(Contravariant)
    Amenable
    Amenable
    CS, μžλ°”, 자료ꡬ쑰, μ•Œκ³ λ¦¬μ¦˜, μŠ€ν”„λ§, μŠ€ν”„λ§ λΆ€νŠΈμ— ν•΄λ‹Ήν•˜λŠ” κ°œλ°œμ— κ΄€ν•œ λ‚΄μš©μ„ κ³΅μœ ν•©λ‹ˆλ‹€.

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