λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

JAVA

클래슀 κ°„μ˜ 관계 - 상속, 포함

1. 상속 

 

πŸ‘‰ ν‚€μ›Œλ“œ 'extends'λ₯Ό 톡해 λΆ€λͺ¨ 클래슀의 멀버λ₯Ό μžμ‹ ν΄λž˜μŠ€κ°€ 상속할 수 있게 λœλ‹€.

 

πŸ‘‰ μ΄λ•Œ μƒμ†λ°›κ²Œ 된 멀버λ₯Ό λΆ€λͺ¨ ν΄λž˜μŠ€μ—μ„œ μ„ μ–Έν•œ κ·ΈλŒ€λ‘œ μ‚¬μš©ν•  수 있고,

      λ˜λŠ” μžμ‹ 클래슀의 상황에 맞게 μ˜€λ²„λΌμ΄λ“œν•  μˆ˜λ„ μžˆλ‹€.

 

πŸ‘‰ μ΄λ ‡κ²Œ μžμ‹ ν΄λž˜μŠ€μ—μ„œ μ˜€λ²„λΌμ΄λ“œ ν•˜κ²Œ λ˜λ”λΌλ„ λΆ€λͺ¨ ν΄λž˜μŠ€λŠ” 영ν–₯을 λ°›μ§€ μ•ŠλŠ”λ‹€.

      μ™œλƒν•˜λ©΄ λΆ€λͺ¨ ν΄λž˜μŠ€μ—μ„œλŠ” μžμ‹ 클래슀의 쑴재λ₯Ό μ•Œ μˆ˜κ°€ μ—†μœΌλ©°,

      μ˜€λ‘œμ§€ μžμ‹ 클래슀만이 일방적으둜 λΆ€λͺ¨ 클래슀λ₯Ό μ•Œκ²Œ λ˜λŠ” 것이기 λ•Œλ¬Έμ΄λ‹€. 

      (πŸ– extendsλŠ” μžμ‹ ν΄λž˜μŠ€μ— μ“°μΈλ‹€λŠ” 사싀을 κΈ°μ–΅ν•˜μž.)

 

πŸ‘‰ λ˜ν•œ μžμ‹ ν΄λž˜μŠ€λŠ” λ³„λ‘œλ„ μžμ‹ μ˜ 멀버λ₯Ό μΆ”κ°€μ μœΌλ‘œ κ°€μ§ˆ μˆ˜λ„ μžˆλŠ”λ°,

      이둜 μΈν•˜μ—¬ μžμ‹ ν΄λž˜μŠ€λŠ” λΆ€λͺ¨ 클래슀의 멀버에 λΉ„ν•˜μ—¬ 멀버λ₯Ό κ°™κ±°λ‚˜ 많게 κ°€μ§€κ²Œ λœλ‹€.

 

πŸ‘‰ 상속 관계가 되면 λ‹€ν˜•μ„±μ— μ˜ν•˜μ—¬ λΆ€λͺ¨ 클래슀 νƒ€μž…μ˜ μ°Έμ‘° λ³€μˆ˜μ— μžμ‹ 클래슀 μΈμŠ€ν„΄μŠ€λ₯Ό 생성할 수 μžˆλ‹€.

      (πŸ– 이에 λŒ€ν•œ μž₯점은 이후 λ‹€ν˜•μ„±μ—μ„œ μ„€λͺ…ν•˜κ² λ‹€.)

 

2. 포함

 

포함 κ΄€κ³„λŠ” 상속 관계와 μœ μ‚¬ν•΄ 보일 수 μžˆμ§€λ§Œ, ν•΄μ„μ˜ 차이둜 μ‰½κ²Œ μ•Œ 수 μžˆλ‹€.

원(Circle)은 점(Point)이닀. - Circle is a Point.                             - 상속
원(Circle)은 점(Point)을 κ°€μ§€κ³  μžˆλ‹€. - Circle has a Point.          - 포함

원과 점의 관계λ₯Ό κ·œμ •μ§“κ³ μž ν•  λ•Œ μ΄λ ‡κ²Œ 두 κ°€μ§€μ˜ 경우λ₯Ό 생각해 λ³Ό 수 μžˆλ‹€.

ν•΄μ„μ˜ 차이둜 원과 점은 포함 관계에 μ’€ 더 μžμ—°μŠ€λŸ½λ‹€.

포함 관계λ₯Ό λ‚˜νƒ€λ‚΄λŠ” ν‚€μ›Œλ“œλŠ” μ—†μ§€λ§Œ λͺ…μ‹œμ μœΌλ‘œ ν¬ν•¨λ˜λŠ” μͺ½μ΄ ν¬ν•¨ν•˜λŠ” μͺ½μ— λ©€λ²„λ‘œ 쓰이면 λœλ‹€.

원과 점을 예둜 λ“€λ©΄, μ•„λž˜μ™€ 같이 λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€.

class Circle {        // ν¬ν•¨ν•˜λŠ” μͺ½
	Point point;      // ν¬ν•¨λ˜λŠ” μͺ½
}

 

 

3. 단일 상속

 

μžλ°”μ—μ„œλŠ” 닀쀑 상속을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

이유λ₯Ό 생각해보면 κ°„λ‹¨ν•˜λ‹€.

class 인어곡주 extends 인간, 해양생물

만일 μœ„μ˜ μ˜ˆμ‹œμ²˜λŸΌ μΈμ–΄κ³΅μ£ΌλΌλŠ” ν΄λž˜μŠ€κ°€ 각각 인간과 해양생물을 상속받고 μžˆλ‹€κ³  κ°€μ •ν•΄λ³΄μž.

인간 ν΄λž˜μŠ€μ—λŠ” 'ν—€μ—„μΉ˜λ‹€'λΌλŠ” λ©”μ„œλ“œκ°€ κ΅¬ν˜„λ˜μ–΄ 있으며, λ§ˆμ°¬κ°€μ§€λ‘œ 해양생물 ν΄λž˜μŠ€μ—λ„ 'ν—€μ—„μΉ˜λ‹€'λΌλŠ” λ©”μ„œλ“œκ°€ κ΅¬ν˜„λ˜μ–΄ μžˆλ‹€.

μ΄λ•Œ 인어곡주가 만일 λΆ€λͺ¨ ν΄λž˜μŠ€λ‘œλΆ€ν„° 'ν—€μ—„μΉ˜λ‹€'λ₯Ό ν˜ΈμΆœν•˜κ²Œ λ˜λ‹€λ©΄ λ‘˜ 쀑 λˆ„κ΅¬μ˜ λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœμ‹œμΌœμ•Ό ν•˜λŠ” κ²ƒμΌκΉŒ?

이름을 μ‹λ³„μžλ‘œ μ‚¬μš©ν•˜κ³  μžˆκΈ°μ— μ»΄νŒŒμΌλŸ¬λŠ” 이λ₯Ό λˆ„κ΅¬μ™€ μ—°κ²°ν•΄μ•Ό ν• μ§€ λͺ°λΌ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰μ‘°μ°¨ μ‹œν‚€μ§€ λͺ»ν•˜κ²Œ 될 것이닀.

μ΄λŸ¬ν•œ 이유둜 μžλ°”μ—μ„œλŠ” 단일 상속을 μ‚¬μš©ν•˜κ³  있으며, λŒ€μ‹  μΈν„°νŽ˜μ΄μŠ€λ‘œ λ‹€μ–‘ν•œ κΈ°λŠ₯을 κ΅¬ν˜„ν•  수 μžˆλ„λ‘ λ³΄μ‘°ν•˜κ³  μžˆλ‹€.