Skip to content

Latest commit

Β 

History

History
27 lines (22 loc) Β· 1.25 KB

Item32.md

File metadata and controls

27 lines (22 loc) Β· 1.25 KB

ν•­λͺ©32. public 상속 λͺ¨ν˜•은 λ°˜λ“œμ‹œ "is-a(...λŠ” ...의 일쒅이닀)"λ₯Ό λ”°λ₯΄λ„둝 λ§Œλ“€μž

κΈ°λ³Έ ν΄λž˜μŠ€μ™€ νŒŒμƒ 클래슀

  • νŒŒμƒ 클래슀 νƒ€μž…μœΌλ‘œ λ§Œλ“€μ–΄μ§„ λͺ¨λ“  κ°μ²΄λŠ” κΈ°λ³Έ 클래슀 νƒ€μž…μ˜ κ°μ²΄μ΄μ§€λ§Œ λ°˜λŒ€λŠ” λ˜μ§€ μ•ŠλŠ”λ‹€.
    • κΈ°λ³Έ ν΄λž˜μŠ€λŠ” νŒŒμƒ ν΄λž˜μŠ€λ³΄λ‹€ 더 일반적인 κ°œλ…μ„ λ‚˜νƒ€λ‚Έλ‹€.
    • νŒŒμƒ ν΄λž˜μŠ€λŠ” κΈ°λ³Έ ν΄λž˜μŠ€λ³΄λ‹€ 더 νŠΉμˆ˜ν•œ κ°œλ…μ„ λ‚˜νƒ€λ‚Έλ‹€.
void eat(const Person& p); // λ¨ΉλŠ”κ²ƒμ€ λˆ„κ΅¬λ“  함
void study(const Sttudent& s); // κ³΅λΆ€λŠ” ν•™μƒλ§Œν•¨

Person p; // pλŠ” Person의 일쒅
Student s; // sλŠ” Student의 일쒅

eat(p); // 문제 μ—†μŒ
eat(s); // 문제 μ—†μŒ sλŠ” Student이고 StudentλŠ” Person의 일쒅

study(s); // 문제 μ—†μŒ
study(p); // μ—λŸ¬. pλŠ” Studentκ°€ μ•„λ‹ˆλ‹€.
  • public μƒμ†μ—μ„œλ§Œ κ°€λŠ₯ν•˜λ‹€.
  • private 상속은 의미 μžμ²΄κ°€ μ™„μ „νžˆ λ‹€λ₯΄λ‹€.
  • public 상속은 κΈ°λ³Έ 클래슀 객체가 κ°€μ§„ λͺ¨λ“  것듀이 νŒŒμƒ 클래슀 객체에도 κ·ΈλŒ€λ‘œ μ μš©λœλ‹€κ³  λ‹¨μ •ν•œλ‹€.

클래슀 사이에 맺을 수 μžˆλŠ” 관계