νλͺ©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
μμμ κΈ°λ³Έ ν΄λμ€ κ°μ²΄κ° κ°μ§ λͺ¨λ κ²λ€μ΄ νμ ν΄λμ€ κ°μ²΄μλ κ·Έλλ‘ μ μ©λλ€κ³ λ¨μ νλ€.
- is-a κ΄κ³
- has-a κ΄κ³
- is-implemented-in-terms-of κ΄κ³