Swiftμμλ ν΄λμ€μ μμμ μ§μνλ€.
μμ
Swiftλ κ°μ²΄μ§ν₯ν νλ‘κ·Έλλ°μ λ€λ£° μ μλ μΈμ΄μ΄λ€.
κ°μ²΄μ§ν₯νλ‘κ·Έλλ°μ νΉμ§μ μΆμν, μΊ‘μν, μλν, μμμ±, λ€νμ±μ΄ μλλ°
κ·Έ μ€μμ μμμ±μ μμ κ°λ μ νΉμ§μ νμ κ°λ μ΄ λ¬Όλ € λ°μμ μ¬μ©νλ κ²μ΄λ€.
μ¦, λΆλͺ¨-μμ κ°μ κ°λ μ μκ°νλ©΄ λλ€.
final
μΈμ μ¬μ©ν¨??π§
λ μ΄μ ν΄λΉ ν΄λμ€μμ νμ ν΄λμ€λ‘μ μ 체 ν΄λμ€ λλ μΌλΆκ° μμ λλ μμμ λ°λ₯Έ μ¬μ μκ° λ νμκ° μλ€κ³ νλ¨ν κ²½μ° final ν€μλλ₯Ό μμ μμ μΆκ°ν¨μΌλ‘μ¨ μμμ λ°©μ§νλ€.
finalμ ‘λ§μ§λ§’, ‘μ μΌν’ μ΄λΌλ μλ―Έλ₯Ό κ°μ§λ€.
μ¦, ν΄λμ€ μμ finalμ λΆμ΄λ©΄ ν΄λΉ ν΄λμ€λ ‘μμν μ μλ ν΄λμ€’ λΌλ μλ―Έλ₯Ό κ°μ§κ² λλ€.
λ§μ°¬κ°μ§λ‘, ν¨μμ finalμ λΆμ΄λ©΄ ‘override(μ¬μ μ) ν μ μλ ν¨μ’ 리λ μλ―Έλ₯Ό κ°μ§κ² λλ€.
finalμ μ±λ₯μ μΌλ‘ μ΄μ μ κ°μ§λλ° μμμ μ€λͺ ν κ²μ²λΌ finalλ‘ μ μΈν ν΄λμ€λ ν¨μλ μ μΌνλ€.
- μμμ΄ λμ§ μλλ€.
- μ¬μ μλ λμ§ μλλ€.
- 'μ μΌν¨'μ 보μ₯λ°λλ€.
- Dynamic Dispatchλ₯Ό μ€μ¬μ£Όμ΄ μ±λ₯μ ν₯μμν¨λ€.
Swiftλ ν΄λμ€κ° λ©μλλ νλ‘νΌν°λ₯Ό μμν μ μλ€!!
final λ‘ μ μΈλ μμλ€μ μμμ΄ λΆκ°λ₯νκΈ° λλ¬Έμ Dynamic Dispatchλ₯Ό μ¬μ©νμ§ μκ³ μ§μ μ μΌλ‘ μ κ·Όν μ μλ€.
μ¦, μ»΄νμΌλ¬λ indirect call, indirect accessλ₯Ό 무μν μ μκ² λλ―λ‘ μ±λ₯μ΄ ν₯μνκ² λλ€!