# Interface & Abstract

κ³΅λΆ€ν•˜κ³  μ •λ¦¬ν•˜λŠ” μ€‘μž…λ‹ˆλ‹€!

# 곡톡점과 차이점

# 곡톡점

  • 객체λ₯Ό 생성할 수 μ—†λ‹€.
  • μ„ μ–ΈλΆ€λ§Œ μžˆλŠ” λ©€λ²„λŠ” ν•˜μœ„ ν΄λž˜μŠ€μ—μ„œ λ°˜λ“œμ‹œ κ΅¬ν˜„ν•΄μ•Ό ν•œλ‹€.

# 차이점

좔상(abstract) 클래슀
μΈν„°νŽ˜μ΄μŠ€(Interface)
κ΅¬ν˜„λœ Method
포함 κ°€λŠ₯
포함 λΆˆκ°€
상속(extends)
상속 κ°€λŠ₯
상속 λΆˆκ°€
κ΅¬ν˜„(implements)
κ΅¬ν˜„ λΆˆκ°€
(닀쀑) κ΅¬ν˜„ κ°€λŠ₯
멀버 λ³€μˆ˜
멀버 λ³€μˆ˜ κ°€μ§ˆ 수 있음
멀버 ν•„λ“œ κ°€μ§ˆ 수 μ—†μŒ

# 정리해보면

λ©”μ†Œλ“œ κ΅¬ν˜„μ„ κ°•μ œν•  수 μžˆλ‹€!

1. 좔상 클래슀

  • 일반 ν΄λž˜μŠ€μ—μ„œ μΆ”μƒν•¨μˆ˜λ§Œ μΆ”κ°€λœ ν˜•νƒœ
  • abstract ν‚€μ›Œλ“œκ°€ ν•„μˆ˜
  • 멀버 λ³€μˆ˜λ₯Ό κ°€μ§ˆ 있음
  • 단일 μƒμ†λ§Œ κ°€λŠ₯

2. μΈν„°νŽ˜μ΄μŠ€

  • λͺ¨λ“  멀버가 좔상적(μ„ μ–Έλ§Œ κ°€λŠ₯)
  • 멀버 μ•ž μ ‘κ·Όμ œμ–΄μž μ‚¬μš© λΆˆκ°€λŠ₯ (defalt둜 public 적용)
  • 닀쀑 κ΅¬ν˜„ κ°€λŠ₯!

img

(β–² 좜처 : oemilk brunch (opens new window) ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€)

# Reference

μΈν„°νŽ˜μ΄μŠ€(interface)와 좔상 클래슀(abstract class) (opens new window)
μžλ°” μΈν„°νŽ˜μ΄μŠ€μ™€ μΆ”μƒν΄λž˜μŠ€ (opens new window)
Effective Java - ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€ (opens new window)

Last Updated: 6/18/2023, 2:13:15 PM