8.2 Programming with Inheritance
Child ํด๋์ค์ Constructor๋ฅผ ๋ง๋ค ๋ ๊ณ ๋ คํด์ผ ํ ์
Instance ๋ณ์์ ๊ฐ์ ์ฑ์๋ฃ๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ํ ์ผ ์ค ํ๋๋ค.
๋ถ๋ชจ ํด๋์ค์๋ ํด๋น ๋ณ์์ ๊ฐ์ ์ฑ์๋ฃ์ด์ผ ํ๋ฏ๋ก ์ด ์์ ์ ํด์ค๋ค.
super(); ๋ก ๋ถ๋ชจ ํด๋์ค์ Consturctor๋ฅผ ํธ์ถํด์ Instance ๋ณ์๋ฅผ ์ฑ์๋ฃ๋๋ค.
super๋ผ๋ ๊ฒ์ ๋จผ์ !! ์ด๋ค์ ธ์ผ ํ๋ค.
๋ถ๋ชจ ํด๋์ค์ Default Constructor๊ฐ ์กด์ฌํ ๋ super()๋ฅผ ์๋ตํ ์ ์๋ค.
Constructor๊ฐ ๋ ๋ค๋ฅธ Constructor๋ฅผ ํธ์ถํ ์ ์๋ค.
this๊ฐ ๋ถ์ผ๋ฉด ๊ฐ์ ํด๋์ค ์์ ์๋ Constructor๋ฅผ ์ง๋ชฉํ๊ฒ ๋๋ค.
this ๋ฅผ ๋ณด์ฌ์ฃผ๋ ์์
writeOuput ์ ์์ฑํ ๋ super. ์ ๋ถ์ฌ์ ๋ถ๋ชจ ํด๋์ค์์ ์ ์ธ๋ writeOutput ๋งค์๋๋ฅผ ๋ถ๋ฅธ๋ค.
equals๋ ๊ฐ๋ฅํ ํ ๋ชจ๋ ํด๋์ค๋ฅผ ์์ฑํ ๋ ๊ตฌํํ๋ ๊ฒ์ด ์ข๋ค๊ณ ๋ง์ํ์ จ๋ค.
Undergraduate ํด๋์ค์์ equals๋ฅผ ํ๊ฒ ๋๋ฉด ๋๋ Undergraduate ๋๋ Undergraduate.
๋ด Under.. ์ค๋ธ์ ํธ์ ๋ Under.. ์ค๋ธ์ ํธ๊ฐ ๊ฐ์์ง ๋น๊ต๋ฅผ ํ๊ฒ ๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก equals ๋ฉ์๋์ parameter Type์ ๋น์ฐํ Undergraduate ์ด๋ค.
๊ทธ๋ฐ๋ฐ (Student) ํ์ ์ผ๋ก ๋ณํ์ ํด์ฃผ๊ณ equals๋ฅผ ์งํํ๊ฒ ๋๋ฉด ์์ ์ฒซ ๋ฒ์งธ equals๋
ํด๋น equals๋ฅผ ๋ถ๋ฅด๋ ๊ฒ์ด ์๋๋ผ ํน์ ๋ค๋ฅธ equals ์ค์ parameter๊ฐ Student์ธ
equals๊ฐ ์์ผ๋ฉด ๊ทธ๊ฒ์ ๊ฐ์ ธ๋ค๊ฐ ์ฌ์ฉํ๊ฒ ๋ค๋ ์๋ฏธ์ด๋ค.
์ฆ, Student ํด๋์ค์ Instance๋ฅผ ๋น๊ตํ ๋ค์์ level์ ๋น๊ตํ๊ฒ ๋ค๋ ์๋ฏธ๊ฐ ๋๋ค.
super.super ์ฆ ๋ ๋ฒ ์ด์์ ์ฌ์ฉ์ ๋ชปํ๋ค.
Derived Class์ Type์ ํ ๊ฐ ์ด์์ผ ์ ์๋ค.
boss๋ผ๋ Object๋ Person ํ์ ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋๋ฐ Person์ ์๋ ์ธ Employee ํ์ ์ด ์ค๋ฉด??
"Employee ๋ Person Type ์ด๋ค" ์ ๊ด๊ณ๊ฐ ์ฑ๋ฆฝํ๋ฏ๋ก ๊ฐ๋ฅํ ๋ฌธ๋ฒ์ด ๋๋ค.
Employee ํ์ ์ Employee ํ์ ์ด๊ธฐ๋ ํ๋ฉด์ Person ํ์ ์ด๊ธฐ๋ ํ๋ค.
"is a relation"
Joseph ์ Person ํ์ ์ด์ฌ์ Person ํ์ ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋๋ฐ
ํ ๋น๋๋ ๊ฒ์ด boss๋ก Employee ํ์ ์ด๋ค. ๊ฐ๋ฅํ๊ฐ?>>
๊ฐ๋ฅํ๋ค!!!!!!!
boss๋ Employee ํ์ ์ด์ฌ์ Employee ํ์ ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋๋ฐ
ํ ๋น๋๋ ๊ฒ์ด joseph์ผ๋ก Person ํ์ ์ด๋ค. ๊ฐ๋ฅํ๊ฐ??
๋ถ๊ฐ๋ฅํ๋ค.
An "Eve" Class
Object Class๋ผ๋ ๊ฒ์ ๋ชจ๋ ํด๋์ค์ ์์ ์๋ Base Class์ด๋ค.
Object ํด๋์ค ์์ ์ด๋ฏธ equals, toString, clone์ด ๊ตฌํ๋์ด ์๋ค.
toString์ด ์๋ต๋์ด ๋๊ฐ์ด ์ถ๋ ฅ๋๋ค.
์ด๋ฐ ์ถ๋ ฅ์ด ๊ฐ๋ฅํ๊ธฐ ์ํด์ toString์ด ๋ชจ๋ ํด๋์ค์ ์ ์ธ๋์ด์ผ ํ๋ค.
studentPar.equals๋ฅผ ํ๊ณ ์์ ์๋ ๊ฒ์ด object ํด๋์ค๋ผ๋ฉด ํด๋น Type์ ํด๋นํ๋ ๊ฒ์ ์ฐพ์ผ๋ฌ
์ญ ์ฌ๋ผ๊ฐ๋ค๊ฐ ๋ฐ๊ฒฌ๋๋ฉด ํด๋น๋๋ ๊ณณ์ equals๊ฐ ์คํ๋๋ค.
ํ์ง๋ง ์ด๋ฐ ๊ฒฝ์ฐ ์๋ฌ๊ฐ ๊ฑฐ์ ๋ฐ์ํ๋ค.
๊ทธ๋์ ์ด๋ค ํด๊ฒฐ์ฑ ์ ํ๋!!
๋ชจ๋ ํด๋์ค์ equals๋ฅผ Object ํ์ ์ผ๋ก ๋ง๋ค์ด ๋์ผ๋ฉด ํด๊ฒฐ์ด ๋ ๊ฒ์ด๋ค. (Overriding)
์ ์ฌ์ง์ ๊ฒฝ์ฐ Overload์ ํด๋นํ๋ค. ์๋ํ๋ฉด signature๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค.
ํ์ ์ด ๋ค๋ฅด๋ค๋ ์๊ธฐ!!!!
์ด์ฒ๋ผ equals์ Type์ Object๋ก ํ ๊ฒฝ์ฐ Overriding์ด ๋๋ค.
otherObject๊ฐ Student์ Instance์ด๋๋ฅผ ๋จผ์ ํ์ธ์ ํด์ค์ผ ํ๋ค.
'๐ Major Study (Bachelor) > ๐ JAVA Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JAVA ํ๋ก๊ทธ๋๋ฐ 6.4 (0) | 2021.10.28 |
---|---|
JAVA ํ๋ก๊ทธ๋๋ฐ 6.3 (0) | 2021.10.28 |
JAVA ํ๋ก๊ทธ๋๋ฐ 8.1 (0) | 2021.10.26 |
JAVA ํ๋ก๊ทธ๋๋ฐ 7.6 (JavaFX) (0) | 2021.10.26 |
JAVA ํ๋ก๊ทธ๋๋ฐ 7.5 (0) | 2021.10.26 |