[iOS] μ„œλΈŒ ν΄λž˜μ‹±

2021. 10. 7. 16:42·🍎 iOS & Swift
λͺ©μ°¨
  1. πŸ’₯ μƒˆλ‘œμš΄ μ‹œμž‘
  2. πŸ’¬ λ“€μ–΄κ°€λ©°
  3. 🌱 μ„œλΈŒν΄λž˜μ‹±μ΄λž€?
  4. πŸ§‘πŸ»β€πŸ’» μ˜ˆμ‹œ μ½”λ“œ
  5. ✨ λ§ˆλ¬΄λ¦¬ν•˜λ©°
  6. πŸ—‚ 레퍼런슀

 

πŸ’₯ μƒˆλ‘œμš΄ μ‹œμž‘

μ•ˆλ…•ν•˜μ„Έμš”, νƒœλΌμž…λ‹ˆλ‹€ γ€° πŸ‘‹

λΈ”λ‘œκ·Έμ— μƒˆλ‘œμš΄ μΉ΄ν…Œκ³ λ¦¬κ°€ μƒκ²ΌμŠ΅λ‹ˆλ‹€ γ€° (μ•Όν˜Έ)

λ­λƒκ΅¬μš”? λ°”λ‘œ '✨ iOSλ₯Ό μœ„ν•œ κ°œλ… 쏙쏙' μΉ΄ν…Œκ³ λ¦¬μΈλ°μš” γ€°

 

곡뢀λ₯Ό ν•˜λ‹€λ³΄λ©΄ 가끔씩(맨날) λͺ¨λ₯΄λŠ” κ°œλ…μ΄λ‚˜ ν‚€μ›Œλ“œ, 문법 등이 λ‚˜μ˜€λŠ”λ°

그런 λ‚΄μš©λ“€μ„ μ •λ¦¬ν•˜λ €κ³  ν•˜λ €κ³  ν•©λ‹ˆλ‹€.

λ‹€μŒ λ‚΄μš©μ€ μ €μ˜ μΈμŠ€νƒ€ 개발 둜그 계정(@taekki.dev)에도 μ˜¬λΌκ°€λ‹ˆ λ§Žμ€ 관심 λΆ€νƒλ“œλ €μš” :)

 

이건 TMI인데 숫자 인덱싱이 μ„Έ 자리수죠!?

μ„Έ μžλ¦¬μˆ˜κΉŒμ§€ ν¬μŠ€νŒ… ν•  κ·Έ 날을 μœ„ν•¨μ΄λΌλŠ”...

뭐 κ·Έ λ‚  μ―€ 되면 μ‹€λ ₯이 μ‘°κΈˆμ€ λŠ˜μ–΄μžˆκ² λ„€μš”(ν•˜ν•˜)

 

그럼 였늘 ν¬μŠ€νŒ… μ‹œμž‘ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€ πŸ™Œ

 

 


 

πŸ’¬ λ“€μ–΄κ°€λ©°

typealias에 λŒ€ν•΄ κ³΅λΆ€ν•˜λ˜ 쀑에 β€˜μ„œλΈŒν΄λž˜μ‹±μ—†μ΄ μ»€μŠ€ν…€ νƒ€μž…μ˜ 배열을 μ •μ˜ν•˜λŠ”λ° μœ μš©ν•˜λ‹€β€™ μš”λŸ° 이야기가 λ‚˜μ™€μ„œ μ„œλΈŒν΄λž˜μ‹±μ΄ 무엇인지 λ¨Όμ € μ•Œμ•„λ³΄λ„λ‘ ν•˜κΈ°λ‘œ ν–ˆμŠ΅λ‹ˆλ‹€. κ·Έ 외에도 가끔씩 λΈ”λ‘œκ·Έλ‚˜ 각쒅 레퍼런슀λ₯Ό 찾아보닀보면 μ„œλΈŒν΄λž˜μ‹±μ΄λΌλŠ” 단어가 보이길래 이 참에 μ •λ¦¬ν•˜λ©΄ 쒋을 것 κ°™λ„€μš”!

 

 


 

🌱 μ„œλΈŒν΄λž˜μ‹±μ΄λž€?

ν•œ λ§ˆλ””λ‘œ λ§ν•΄μ„œ 상속(Inheritance)μž…λ‹ˆλ‹€. 상속은 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°ν•˜λ©΄ λ‹¨κ³¨λ‘œ λ‚˜μ˜€λŠ” κ°œλ…μž…λ‹ˆλ‹€. μ‹€μƒν™œμ—μ„œλŠ” 'μœ μ‚° 상속' μš”λŸ° ν‘œν˜„μœΌλ‘œ 많이 μ“°μž…λ‹ˆλ‹€. 보톡 λΆ€λͺ¨μ˜ μž¬μ‚°μ„ μžμ‹μ΄ λ¬Όλ €λ°›κ²Œ 되죠? 그럼 μƒμ†μ΄λΌλŠ” κ°œλ…μ„ λ‹€μŒκ³Ό 같이 정리할 수 μžˆμ„ 것 κ°™μŠ΅λ‹ˆλ‹€.

 

상속 οΉ¦ λΆ€λͺ¨μ˜ 것을 μžμ‹μ΄ λ¬Όλ €λ°›λŠ” 것

 

객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œλ„ μš°λ¦¬λŠ” ν•΄λ‹Ή κ°œλ…μ„ μ°Ύμ•„λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. ν΄λž˜μŠ€λŠ” λ‹€λ₯Έ ν΄λž˜μŠ€λ‘œλΆ€ν„° λ©”μ†Œλ“œ, ν”„λ‘œνΌν‹° λ“±μ˜ λ‹€λ₯Έ νŠΉμ§•λ“€μ„ 물렀받을 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ κ°œλ…μ„ μš°λ¦¬λŠ” 상속이라고 λΆ€λ¦…λ‹ˆλ‹€. 상속을 ν•΄μ£ΌλŠ” 클래슀λ₯Ό λΆ€λͺ¨ 클래슀(Super Class)라고 λΆ€λ₯΄κ³ , 상속을 λ°›λŠ” 클래슀λ₯Ό μžμ‹ 클래슀(Sub Class)라고 λΆ€λ¦…λ‹ˆλ‹€.

 

상속을 ν•˜λŠ” 방식을 λ””ν…ŒμΌν•˜κ²Œ λ‚˜λˆ„μ–΄ 보면 μ„œλΈŒν΄λž˜μ‹±(Subclassing)κ³Ό μ„œλΈŒνƒ€μ΄ν•‘(Subtyping)으둜 λ‚˜λ‰˜λŠ” κ²ƒμΈλ°μš”.

 

μ„œλΈŒν΄λž˜μ‹±μ€ 기쑴에 κ΅¬ν˜„λ˜μ–΄ μžˆλŠ” 클래슀λ₯Ό 톡해 μƒˆλ‘œμš΄ 클래슀λ₯Ό λ§Œλ“œλŠ” κ²ƒμž…λ‹ˆλ‹€. κ΅¬ν˜„λ˜μ–΄ μžˆλŠ” 클래슀λ₯Ό μƒμ†ν•œλ‹€λŠ” 점이 μ„œλΈŒνƒ€μ΄ν•‘κ³Ό λ‹€λ₯Έ λΆ€λΆ„μž…λ‹ˆλ‹€. 정리λ₯Ό 해보면 μ„œλΈŒν΄λž˜μ‹±μ„ 톡해 λΆ€λͺ¨ 클래슀(Super Class)에 κ΅¬ν˜„λœ μ½”λ“œμ™€ ꡬ쑰λ₯Ό μžμ‹ 클래슀(Sub Class)κ°€ 물렀받을 수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ μžμ‹ ν΄λž˜μŠ€λŠ” λΆ€λͺ¨ 클래슀의 μ½”λ“œλ₯Ό μž¬μ‚¬μš©ν•  수 μžˆμ„ 뿐만 μ•„λ‹ˆλΌ 자기 μžμ‹ λ§Œμ˜ κ³ μœ ν•œ λ‚΄μš©μ„ μΆ”κ°€ν•  μˆ˜λ„ μžˆλ‹΅λ‹ˆλ‹€.

 


 

πŸ§‘πŸ»β€πŸ’» μ˜ˆμ‹œ μ½”λ“œ

// λΆ€λͺ¨ 클래슀(Super Class)
class Drink {
    var name = "Unknown"
    var alcohol = 0.0
    
    init(name: String, alcohol: Double) {
        self.name = name
        self.alcohol = alcohol
    }
    
    func drink() {}
}
// μžμ‹ 클래슀(Sub Class)
class Soju: Drink {
    var kcal = 900
    var emergencyMessage: String {
        return "μ†Œμ£ΌλŠ” 500ccλ‹Ή \(kcal)λ‹€...πŸ’₯"
    }
}
let jinro = Soju(name: "μ§„λ‘œ", alcohol: 16.9)
print(jinro.alcohol) // λΆ€λͺ¨ 클래슀의 ν”„λ‘œνΌν‹°
print(jinro.emergencyMessage) // μžμ‹ ν΄λž˜μŠ€μ— μƒˆλ‘­κ²Œ κ΅¬ν˜„ν•œ ν”„λ‘œνΌν‹°

 


 

✨ λ§ˆλ¬΄λ¦¬ν•˜λ©°

μ•Œμ•„λ³΄λ‹ˆ μš°λ¦¬κ°€ 기쑴에 μ•Œκ³  μžˆμ—ˆλ˜ 상속 κ°œλ…μ„ λΆ€λ₯΄λŠ” λ§μ΄μ—ˆλ„€μš”. 상속 λ°›λŠ” ν–‰μœ„λ₯Ό μš°λ¦¬λŠ” μ„œλΈŒ ν΄λž˜μ‹±μ΄λΌκ³  λΆ€λ₯΄κ³  있던 것이죠.. λ””ν…ŒμΌν•˜κ²Œ 보면 μ„œλΈŒν΄λž˜μ‹±κ³Ό μ„œλΈŒνƒ€μ΄ν•‘μœΌλ‘œ μƒμ†μ˜ 방식이 λ‚˜λ‰˜μ§€λ§Œ 두 κ°€μ§€ λͺ¨λ‘ 상속을 ν•˜λŠ” ν–‰μœ„μΈ 것은 λ™μΌν•˜λ‹€κ³  λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. ν—ˆλ¬΄ν•˜μ§€λ§Œ 였늘의 κ°œλ… 곡뢀 성곡! πŸ™‹πŸ»β€β™‚οΈ

 


 

πŸ—‚ 레퍼런슀

https://epicdevsold.tistory.com/177

https://jusung.gitbook.io/the-swift-language-guide/language-guide/13-inheritance

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

[iOS] UIWindow  (0) 2021.11.07
[iOS] CollectionView Cell λ„ˆλΉ„ λ™μ μœΌλ‘œ μ‘°μ ˆν•˜κΈ°  (8) 2021.10.28
[iOS] Delegate Pattern(델리게이트 νŒ¨ν„΄) μ˜ˆμ‹œ(1) - 이전 ν™”λ©΄μœΌλ‘œ λ„˜μ–΄μ˜€λ©΄μ„œ 데이터λ₯Ό μ „λ‹¬ν•˜κ³  싢을 λ•Œ  (4) 2021.09.09
[iOS] Associated Type  (3) 2021.09.05
[iOS] Typealias, νƒ€μž… 별칭 μ‚¬μš©ν•˜κΈ°  (3) 2021.09.02
  1. πŸ’₯ μƒˆλ‘œμš΄ μ‹œμž‘
  2. πŸ’¬ λ“€μ–΄κ°€λ©°
  3. 🌱 μ„œλΈŒν΄λž˜μ‹±μ΄λž€?
  4. πŸ§‘πŸ»β€πŸ’» μ˜ˆμ‹œ μ½”λ“œ
  5. ✨ λ§ˆλ¬΄λ¦¬ν•˜λ©°
  6. πŸ—‚ 레퍼런슀
'🍎 iOS & Swift' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [iOS] UIWindow
  • [iOS] CollectionView Cell λ„ˆλΉ„ λ™μ μœΌλ‘œ μ‘°μ ˆν•˜κΈ°
  • [iOS] Delegate Pattern(델리게이트 νŒ¨ν„΄) μ˜ˆμ‹œ(1) - 이전 ν™”λ©΄μœΌλ‘œ λ„˜μ–΄μ˜€λ©΄μ„œ 데이터λ₯Ό μ „λ‹¬ν•˜κ³  싢을 λ•Œ
  • [iOS] Associated Type
taeeekki
taeeekki
🌱iOS 개발자λ₯Ό κΏˆκΎΈλŠ” 학생이 λ§Œλ“œλŠ” λΈ”λ‘œκ·Έ
taeeekki
taekki.dev
taeeekki
전체
였늘
μ–΄μ œ
  • All (130)
    • 🌱 SeSAC (40)
    • β˜€οΈ 100DaysOfSwift (18)
    • 🍎 iOS & Swift (60)
    • πŸ“© Essay (3)
    • 🎁 Tip (4)
    • 🌈 UIUX (2)
    • 🧐 OOP (1)
    • πŸ₯³ Side Project (0)
    • ✨ Problem Solving (1)
    • πŸ“ Note (1)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝

곡지사항

인기 κΈ€

νƒœκ·Έ

iOS H.I.G
Realm
OOTD
URLSession
κΉƒν—ˆλΈŒ
TIL
PageViewController
swift
μ†νŠΈ
μ˜€μ˜€νˆ¬λ‘
network
iOS μ•± μΆœμ‹œ
100DaysOfSwift
iOS UIUX
Diary App
IOS
github
μ˜΅μ…”λ„
개발
개인 μ•± μΆœμ‹œ
ν΄λ‘œμ €
commit
μŠ€μœ„ν”„νŠΈλ¬Έλ²•
github tip
SeSAC
CollectionView
μŠ€μœ„ν”„νŠΈ 문법
μŠ€μœ„ν”„νŠΈ
tableView
GIT

졜근 λŒ“κΈ€

졜근 κΈ€

hELLOΒ· Designed Byμ •μƒμš°.v4.5.3
taeeekki
[iOS] μ„œλΈŒ ν΄λž˜μ‹±
μƒλ‹¨μœΌλ‘œ

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

단좕킀

λ‚΄ λΈ”λ‘œκ·Έ

λ‚΄ λΈ”λ‘œκ·Έ - κ΄€λ¦¬μž ν™ˆ μ „ν™˜
Q
Q
μƒˆ κΈ€ μ“°κΈ°
W
W

λΈ”λ‘œκ·Έ κ²Œμ‹œκΈ€

κΈ€ μˆ˜μ • (κΆŒν•œ μžˆλŠ” 경우)
E
E
λŒ“κΈ€ μ˜μ—­μœΌλ‘œ 이동
C
C

λͺ¨λ“  μ˜μ—­

이 νŽ˜μ΄μ§€μ˜ URL 볡사
S
S
맨 μœ„λ‘œ 이동
T
T
ν‹°μŠ€ν† λ¦¬ ν™ˆ 이동
H
H
단좕킀 μ•ˆλ‚΄
Shift + /
⇧ + /

* λ‹¨μΆ•ν‚€λŠ” ν•œκΈ€/영문 λŒ€μ†Œλ¬Έμžλ‘œ 이용 κ°€λŠ₯ν•˜λ©°, ν‹°μŠ€ν† λ¦¬ κΈ°λ³Έ λ„λ©”μΈμ—μ„œλ§Œ λ™μž‘ν•©λ‹ˆλ‹€.