πŸ“œ MENTOR JAVA_

Section#10 _ 상속

CodeLoge 2025. 1. 17. 20:03

#1 μƒμ†μ΄λž€?

: λΆ€λͺ¨ 역할을 ν•˜λŠ” ν΄λž˜μŠ€κ°€ μžμ‹ 역할을 ν•˜λŠ” ν΄λž˜μŠ€μ—κ²Œ 클래슀 멀버와 λ©”μ„œλ“œλ₯Ό λ¬Όλ €μ£ΌλŠ” 것

: κ΅¬ν˜„ν•˜λŠ” 방법 → extends λΌλŠ” ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄ 상속받을 클래슀 μ§€λͺ…

class A{
...
}
class B extends A{
...
}

#2 μƒμ†μ—μ„œμ˜ μƒμ„±μž

: μžμ‹ 클래슀의 κΈ°λ³Έ μƒμ„±μžλŠ” 닀름 → ν•„λ“œ μ΄ˆκΈ°ν™”μ™€ 같은 νŠΉλ³„ν•œ 역할을 ν•˜κ³  μžˆμ§€ μ•Šλ”λΌλ„, super() λΌλŠ” λ©”μ„œλ“œλ₯Ό κ°€μ§€κ³  있음

: super() → λΆ€λͺ¨ 클래슀의 μƒμ„±μžλ₯Ό ν˜ΈμΆœν•  λ•Œ μ‚¬μš©

: κ°œλ°œμžκ°€ 직접 μƒμ„±μžλ₯Ό μ„ μ–Έν•  λ•Œλ„ μžμ‹ ν΄λž˜μŠ€μ—μ„œλŠ” λ°˜λ“œμ‹œ λΆ€λͺ¨ 클래슀의 μƒμ„±μžλ₯Ό ν˜ΈμΆœν•΄ μ€˜μ•Όν•¨

λΆ€λͺ¨ 클래슀(λ§€κ°œλ³€μˆ˜ 1, λ§€κ°œλ³€μˆ˜ 2){
	this.ν•„λ“œ1 = λ§€κ°œλ³€μˆ˜1;
    this.ν•„λ“œ2 = λ§€κ°œκ°œλ³€μˆ˜2;
}
μžμ‹ 클래슀(λ§€κ°œλ³€μˆ˜ 1, λ§€κ°œλ³€μˆ˜ 2, ...){
	// super() λ©”μ„œλ“œλŠ” μžμ‹ μƒμ„±μžμ˜ 첫 μ€„μ—μ„œ ν˜ΈμΆœν•΄μ•Όν•¨
	super(λ§€κ°œλ³€μˆ˜ 1, λ§€κ°œλ³€μˆ˜ 2, ...)
}

 #3 μ˜€λ²„λΌμ΄λ”©

: μžμ‹ ν΄λž˜μŠ€κ°€ 상속받은 λ©”μ„œλ“œμ˜ λ‚΄μš©μ„ λ³€κ²½ν•΄μ„œ μ‚¬μš© κ°€λŠ₯

: μ˜€λ²„λΌμ΄λ”© → 상속받은 λ©”μ„œλ“œλ₯Ό λ³€κ²½ν•΄μ„œ λ‹€μ‹œ κ΅¬ν˜„ν•˜λŠ” 것 / 상속받은 기쑴의 λ©”μ„œλ“œλ₯Ό μž¬μ •μ˜

: μ˜€λ²„λ‘œλ”© → μƒˆλ‘œμš΄ λ©”μ„œλ“œλ₯Ό μ •μ˜

:

β˜… λΆ€λͺ¨ 클래슀의 λ©”μ„œλ“œ 이름 / λ°˜ν™˜ νƒ€μž… / 맀개 λ³€μˆ˜μ™€ 동일해야 함

β˜… λΆ€λͺ¨ 클래슀의 λ©”μ„œλ“œ 보닀 μ ‘κ·Ό μ œν•œμ„ 쀄일 μˆ˜λŠ” μžˆμœΌλ‚˜ (λ²”μœ„λ₯Ό λ„“νž 수 μžˆμœΌλ‚˜) μ ‘κ·Ό μ œν•œμ„ 늘릴 μˆ˜λŠ” μ—†μŒ.

 

#4 μ ‘κ·Ό μ œν•œμž

#4-1 μ œν•œμž

: 클래슀, λ³€μˆ˜ λ˜λŠ” λ©”μ„œλ“œμ˜ 선언뢀에 ν•¨κ»˜ μ‚¬μš©, 뢀가적인 의미λ₯Ό λΆ€μ—¬ν•˜λŠ” ν‚€μ›Œλ“œ

#4-2 μ ‘κ·Ό μ œν•œμž

: 접근이 ν•„μš”ν•˜μ§€ μ•Šμ€ κ³³μ—μ„œμ˜ μ‚¬μš©μ„ λ§‰κ±°λ‚˜, νŠΉμ • λ²”μœ„μ—μ„œλ§Œ μ ‘κ·Όν•  수 있게 ν•˜κΈ° μœ„ν•¨

β†ͺ︎ OOP의 νŠΉμ§• 쀑 ν•˜λ‚˜μΈ 정보 은닉을 μ§€ν‚€κΈ° μœ„ν•œ μ€‘μš”ν•œ λΆ€λΆ„

: ν΄λž˜μŠ€λŠ” μ ‘κ·Ό μ œν•œμžλ‘œ publicκ³Ό default만 κ°€μ§ˆ 수 있음

Ex)

1. public : λ‹€λ₯Έ νŒ¨ν‚€μ§€μ˜ ν΄λž˜μŠ€μ—μ„œλ„ μ ‘κ·Ό κ°€λŠ₯

2. default : 같은 νŒ¨ν‚€μ§€ λ‚΄μ—μ„œ μ ‘κ·Ό κ°€λŠ₯

3. protected : 클래슀 멀버λ₯Ό μœ„ν•œ μ œν•œμž → 클래슀 멀버λ₯Ό 보호

4. private : 클래슀 μ™ΈλΆ€μ—μ„œ 접근이 μ „ν˜€ λΆˆκ°€λŠ₯

 

#5 2μ°¨ 상속 (Nμ°¨ 상속)

: 2μ°¨, 3μ°¨.. λ“± μ›ν•˜λŠ” 만큼 상속을 μ΄μ–΄μ„œ 받을 수 있음

A 클래슀 ← B 클래슀 extends A 클래슀 ← C 클래슀 extends B 클래슀 ← ...

 

#6 final 클래슀 & λ©”μ„œλ“œ

: μƒμ„±μžμ—λŠ” final을 μΆ”κ°€ν•  수 μ—†μŒ

#6-1 final 클래슀

: ν•΄λ‹Ή ν΄λž˜μŠ€λŠ” μƒμ†μ˜ λ§ˆμ§€λ§‰ 클래슀

: μ–΄λ– ν•œ ν΄λž˜μŠ€λ„ 이 클래슀의 μžμ‹ ν΄λž˜μŠ€κ°€ 될 수 μ—†κ³ , 이 클래슀 λ˜ν•œ μ–΄λ–€ 클래슀의 λΆ€λͺ¨ ν΄λž˜μŠ€κ°€ 될수 μ—†μŒ

#6-2 final λ©”μ„œλ“œ

: 상속받더라도, μ˜€λ²„λΌμ΄λ”©ν•  수 μ—†λŠ” λ©”μ„œλ“œ → κ·ΈλŒ€λ‘œ μ‚¬μš©ν•΄μ•Ό 함

 

 

'πŸ“œ MENTOR JAVA_' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

Section#13 _ λ‚΄λΆ€ 클래슀  (0) 2025.01.20
Section#11 _ λ‹€ν˜•μ„±κ³Ό νƒ€μž… λ³€ν™˜  (2) 2025.01.18
Section#9 _ μƒμ„±μž  (0) 2025.01.16
Section#8 _ λ©”μ„œλ“œ  (0) 2025.01.15
Section#7 _ 클래슀  (1) 2025.01.14