ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Swift] - 상속 (Inheritance)
    iOS/🟠 Swift 2021. 4. 21. 11:35

    상속

    상속은 클래슀만의 νŠΉμ§•μœΌλ‘œ μ„œλΈŒν΄λž˜μŠ€λŠ” 수퍼클래슀의 λ©”μ„œλ“œλ‚˜ ν”„λ‘œνΌν‹°λ“±μ„ 상속받아 μ‚¬μš©ν• μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

     

    super ν‚€μ›Œλ“œ 없이 μ΄λ¦„λ§ŒμœΌλ‘œ μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.

     

    λ˜ν•œ final ν‚€μ›Œλ“œλ‘œ μ •μ˜λœ μš”μ†ŒλŠ” 상속받지 λͺ»ν•©λ‹ˆλ‹€.

     

    상속받은 수퍼클래슀의 μš”μ†Œλ₯Ό μž¬μ •μ˜λ₯Ό ν•  λ•ŒλŠ” λͺ…ν™•νžˆ override ν‚€μ›Œλ“œλ‘œ λͺ…μ‹œν•΄μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€.

     

    μ„œλΈŒν΄λž˜μŠ€μ—μ„œ μž¬μ •μ˜λ₯Ό ν–ˆλ‹€λ©΄, 수퍼클래슀의 원본 μš”μ†ŒλŠ” super ν‚€μ›Œλ“œλ‘œ μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.

     

    μž¬μ •μ˜ 쀑 ν”„λ‘œνΌν‹°, ν”„λ‘œνΌν‹° κ°μ‹œμž 뢀뢄은 κ·œμΉ™μ„ μ œλŒ€λ‘œ μ•Œκ³  κ°€μ•Ό ν•©λ‹ˆλ‹€.

     

    λ©”μ„œλ“œ μž¬μ •μ˜, μ„œλΈŒμŠ€ν¬λ¦½νŠΈ μž¬μ •μ˜λŠ” κ°„λ‹¨ν•˜κΈ° λ•Œλ¬Έμ— μƒλž΅ν•˜μ˜€μŠ΅λ‹ˆλ‹€


     

    ν”„λ‘œνΌν‹° μž¬μ •μ˜

    μ €μž₯ ν”„λ‘œνΌν‹°λ‘œ μž¬μ •μ˜ ν• μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€.

     

    읽기과 μ“°κΈ° κ°€λŠ₯, 즉 {get set} 으둜 κ΅¬ν˜„λœ μ—°μ‚° ν”„λ‘œνΌν‹°μ˜ ν”„λ‘œνΌν‹° κ°μ‹œμžλ₯Ό μž¬μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

     

    그리고 μž¬μ •μ˜κ°€ μ•„λ‹λ•Œλ„ μ—°μ‚°ν”„λ‘œνΌν‹°μ™€ ν”„λ‘œνΌν‹° κ°μ‹œμžλŠ” λ™μ‹œμ— μ •μ˜ν• μˆ˜ μ—†μ—ˆλŠ”λ°, μž¬μ •μ˜ λ•Œλ„ μ—°μ‚° ν”„λ‘œνΌν‹°μ™€ ν”„λ‘œνΌν‹° κ°μ‹œμžλŠ” λ™μ‹œμ— μ •μ˜ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

     

    {get} 을 {get set}둜 μž¬μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

     

    {get set} 을 {get} 으둜 μž¬μ •μ˜ν•  μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€.

     

    μƒμˆ˜μ €μž₯ ν”„λ‘œνΌν‹°λ‚˜ {get} 으둜만 κ΅¬ν˜„λœ μ—°μ‚°ν”„λ‘œνΌν‹°λŠ” ν”„λ‘œνΌν‹° κ°μ‹œμžλ₯Ό μž¬μ •μ˜ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

     

    ν”„λ‘œνΌν‹° κ°μ‹œμžλ₯Ό μž¬μ •μ˜ν•΄λ„ μˆ˜νΌν΄λž˜μŠ€μ— μ •μ˜λœ ν”„λ‘œνΌν‹° κ°μ‹œμžλ„ 같이 λ™μ‹œμ— λ™μž‘ν•©λ‹ˆλ‹€.


     

    μž¬μ •μ˜ 방지

    μž¬μ •μ˜ λ°©μ§€λŠ” μš”μ†Œ μ•žμ— final ν‚€μ›Œλ“œλ₯Ό λΆ™μ—¬μ£Όλ©΄ λ©λ‹ˆλ‹€.

     

     

     

    끝!


    참고 자료: docs.swift.org/swift-book/LanguageGuide/Inheritance.html

     

     

    πŸ€–πŸŸ’[우짱의 iOS λΈ”λ‘œκ·Έ]πŸ”΅πŸ’»

    iOSλ₯Ό κ³΅λΆ€ν•˜λ©΄μ„œ 배운 λ‚΄μš©μ„ κΈ°λ‘ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

    'iOS > 🟠 Swift' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

    [Swift] μ…€λ ‰ν„°(Selector)λž€?  (2) 2021.05.02
    [Swift] - defer λ¬Έμ΄λž€?  (0) 2021.04.29
    [Swift] - Deinitialization  (0) 2021.04.20
    [Swift] CaseIterable μ΄λž€?  (0) 2021.03.29
    [Swift] μ—°μ‚°μž κ΅¬ν˜„ (Implementing Operator Methods)  (0) 2021.03.18

    λŒ“κΈ€

μ–΄μ œλ³΄λ‹€ λ°œμ „ν•œ λ‚˜