λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
1. Java μžλ°”/1_0. μ±…, κ°•μ˜

[μžλ°”ν”„λ‘œκ·Έλž˜λ°1] 13μ£Όμ°¨ κ°•μ˜_ν•„κΈ°

by λΉ„μ†Œμ•Ό 2022. 5. 18.
728x90

μžλ°”ν”„λ‘œκ·Έλž˜λ°1 13μ£Όμ°¨ κ°•μ˜_ν•„κΈ°

1μ°¨μ‹œ

 

5μž₯ μƒμ†
상속 // λΆ€λͺ¨ ν΄λž˜μŠ€μ˜ λͺ¨λ“  ν•„λ“œμ™€ λ©”μ†Œλ“œλ₯Ό μžμ‹ ν΄λž˜μŠ€κ°€ λ¬Όλ € λ°›μŒ, ν™•μž₯의 κ°œλ…
μž₯점
1. 쀑볡 μ œκ±°
2. 클래슀 κ³„측적 λΆ„λ₯˜
3. μ†Œν”„νŠΈμ›¨μ–΄μ˜ μƒμ‚°μ„± ν–₯상

상속 μ„ μ–Έ // μžμ‹ ν΄λž˜μŠ€ extends λΆ€λͺ¨ ν΄λž˜μŠ€
public class Student extends Person {}

μžλ°”μ—μ„œλŠ” C++κ³Ό λ‹€λ₯΄κ²Œ ν΄λž˜μŠ€μ˜ λ‹€μ€‘상속 X (λΆ€λͺ¨ ν΄λž˜μŠ€κ°€ μ—¬λŸ¬ κ°œμΈ κ²ƒ) // κ·ΈλŸ¬λ‚˜ μΈν„°νŽ˜μ΄μŠ€λŠ” λ‹€μ€‘상속을 ν—ˆμš©
상속 νšŸμˆ˜ μ œν•œ μ—†μŒ
λͺ¨λ“  ν΄λž˜μŠ€λŠ” μ»΄νŒŒμΌλŸ¬μ— μ˜ν•΄ μžλ™μœΌλ‘œ java.lang.Object ν΄λž˜μŠ€λ₯Ό μƒμ† λ°›μŒ // μ΅œμƒμœ„ ν΄λž˜μŠ€

 

2μ°¨μ‹œ

 

new μ—°μ‚°μžμ— μ˜ν•΄ μžμ‹ 클래슀 객체가 생성될 λ•Œ, λΆ€λͺ¨ ν΄λž˜μŠ€μ™€ μžμ‹ 클래슀의 μƒμ„±μžκ°€ λͺ¨λ‘ μ‹€ν–‰λœλ‹€.

ν˜ΈμΆœμˆœμ„œλŠ” μžμ‹λΆ€ν„°

μ‹€ν–‰μˆœμ„œλŠ” λΆ€λͺ¨λΆ€ν„°

 

super() // μ΄μš©ν•˜μ—¬ μžμ‹ 클래슀 μƒμ„±μž λ‚΄μ—μ„œ λΆ€λͺ¨ 클래슀 μƒμ„±μž ν•˜λ‚˜ 선택 ν•„μš”

λ”°λ‘œ μ§€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ μ»΄νŒŒμΌλŸ¬κ°€ μžλ™μœΌλ‘œ λΆ€λͺ¨ 클래슀의 κΈ°λ³Έ μƒμ„±μž 선택

 

μ—…μΊμŠ€νŒ…μ΄λž€? // μžμ‹ 클래슀 객체λ₯Ό λΆ€λͺ¨ 클래슀 νƒ€μž…μœΌλ‘œ λ³€ν™˜ == μžμ‹ 클래슀 객체λ₯Ό λΆ€λͺ¨ 클래슀 레퍼런슀둜 κ°€λ¦¬ν‚€λŠ” 것

μ—…μΊμŠ€νŒ… 된 λΆ€λͺ¨ 클래슀 λ ˆνΌλŸ°μŠ€λ‘œλŠ” λΆ€λͺ¨ 클래슀 λ©€λ²„μ—λ§Œ μ ‘κ·Ό κ°€λŠ₯, μ‹€μ œλ‘œλŠ” μžμ‹ 클래슀 객체λ₯Ό 가리킀고 μžˆλ”λΌλ„

1
2
3
4
class Person{}
class Student extends Person{}
Student s = new Student();
Person p = s ; // μ—…μΊμŠ€νŒ…, μžλ™νƒ€μž…λ³€ν™˜
cs

 

3μ°¨μ‹œ

 

λ‹€μš΄μΊμŠ€νŒ…μ΄λž€ // λΆ€λͺ¨ 클래슀 객체λ₯Ό μžμ‹ 클래슀 νƒ€μž…μœΌλ‘œ λ³€ν™˜ == μ—…μΊμŠ€νŒ…λœ λΆ€λͺ¨ 클래슀 객체λ₯Ό μžμ‹ 클래슀 레퍼런슀둜 κ°€λ¦¬ν‚€λŠ” 것

μ—…μΊμŠ€νŒ… 되면 λΆ€λͺ¨ 클래슀 객체λ₯Ό 가리킀고 μžˆλ‹€κ³  생각, μ‹€μ œλ‘œλŠ” μžμ‹ 클래슀 객체λ₯Ό 가리킀고 μžˆλ”λΌλ„

1
2
Person p = new Student(); // μ—…μΊμŠ€νŒ…
Student s = (Student)p; // λ‹€μš΄μΊμŠ€νŒ…, λͺ…μ‹œμ  νƒ€μž… λ³€ν™˜
cs

 

instanceof μ—°μ‚°μž // λ ˆνΌλŸ°μŠ€κ°€ κ°€λ¦¬ν‚€λŠ” 객체의 νƒ€μž… 식별을 μœ„ν•΄ μ‚¬μš©, true of false 리턴, 슀무고개

객체 레퍼런슀 instanceof 클래슀

 

728x90