μ§κΈκΉμ§ μΆμν΄λμ€μ μΈν°νμ΄μ€λ₯Ό μ΄ν΄λ³΄μλ€. μΆμν΄λμ€μ μΈν°νμ΄μ€λ κ°κ° κ³ μ ν λͺλͺ νΉμ§μ κ°μ§κ³ μμ§λ§, "μΆμ λ©μλλ₯Ό ν΅ν΄ μμ/ꡬνμ ν΅ν λ©μλ κ°μ ꡬν κ·μΉμ κ°μ§λ μΆμν ν΄λμ€"λΌλ μ μμ λ§€μ° λΉμ·νλ€λ λλμ λ°μ κ²μ΄λ€.
λν, 'κ·Έλ λ€λ©΄ λͺ¨λ λ©μλλ₯Ό μΆμ λ©μλλ‘ λ§λ€μ΄μ μ¬μ©νλ©΄ μΆμ ν΄λμ€κ° μΈν°νμ΄μ€ μν ν μ μλλ° μ κ΅³μ΄ μΈν°νμ΄μ€κ° μ‘΄μ¬νλ κ±ΈκΉ? 'λΌλ μλ¬Έλ μκΈΈ μ μλ€.
κΈ°λ₯μ μΈ μΈ‘λ©΄μ λ€ μ μΈνκ³ , λ κ°λ₯Ό λλμ΄μ μ¬μ©νλ κ°μ₯ ν° μ΄μ λ μ¬μ© λͺ©μ κ³Ό μ¬μ© μκΈ°κ° λ€λ₯΄λ€λ κ²μ΄λ€.
κ·Έλ¬λ―λ‘ 'μΆμ ν΄λμ€μ μΈν°νμ΄μ€μ μ¬μ© λͺ©μ κ³Ό μ¬μ© μκΈ°μ μ°¨μ΄'λ₯Ό μμλ³΄κ³ , 'κΈ°λ₯μ μΈ μ°¨μ΄μ 'μ λν΄μλ μΆκ°μ μΌλ‘ μ λ¦¬ν΄ λ³΄λλ‘ νμ.
π 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 |