8.1 Inheritance Basics
Principles of Abstraction, Code reuse
์ ๊ฐ์ฒด ์งํฅ์ธ๊ฐ?
๋ณต์กํ ํ๋ก๊ทธ๋จ ๋ค๋ฃจ๋๋ฐ ์ค์ํ๊ธฐ ๋๋ฌธ์
Abstraction ๊ฐ๋ ์ ํ์ฉํด์ ๋ณต์กํ ๊ฐ๋ ์ ์ดํดํ๋๋ฐ Simpleํ๊ฒ ๋ฐ๊ฟ ์ ์๋ ๊ฐ๋ ์ด ์กด์ฌํ๋ค๋ ๊ฒ
Reusability, ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ๊ธฐ์ ์ข๋ค.
the base of parent class, derived or child classes
Inheritance๋ฅผ ์ฌ์ฉํ ๋๋ General ํ ํด๋์ค๋ฅผ ๋ง๋ค์ด ๋๊ณ
Specialized ๋ ํด๋์ค์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๋ ์์์ ๊ฐ๋ ์ ์ฌ์ฉํ๋ค.
General Class๋ฅผ Parent Class ๋ผ๊ณ ํ๊ณ
Specialized Class๋ฅผ Child Class ๋ผ๊ณ ํ๋ค. (Derived Class ๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํจ)
extends
Child Class ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ
์์๋ฐ์ ํด๋์ค์๋ Instance ๋ณ์๊ฐ ์กด์ฌํ๊ณ ์์ ๋ฐ์ ์๋ ํด๋์ค์๋ Instance ๋ณ์๊ฐ ์กด์ฌํ๋ค.
์๋ ํด๋์ค์์ Constructor๋ก Initialize ํด์ค ๋ super()๋ก ๋ถ๋ชจ ํด๋์ค๋ฅผ ์ด๊ธฐํ ์์ผ์ค๋ค.
writeOutput์ ์ง์ Println์ ๊ฐ์ง๊ณ ์ถ๋ ฅ์ ํด์ฃผ๋ ๊ฒ์ด๊ณ
toString์ String์ return value๋ก ํด์ ์ถ๋ ฅ์ ํด์ฃผ๋ ๊ฒ์ด๋ค.
writeOutput, equals, toString ๋งค์๋๋ฅผ ์ด๋ ํด๋์ค์ด๋ ์ ์ธ์ ํด์ฃผ๋ ๊ฒ์ด ์ข์ ์ต๊ด์ด๋ค.
Child ํด๋์ค๋ฅผ ๋ง๋ค ๋๋ ๋ณธ์ธ์ด ์ถ๊ฐํ๊ณ ์ถ์ Instance ๋ณ์๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
์๋ ํด๋์ค์์ ๋งค์๋์ ์ด๋ฆ๊ณผ ๋ถ๋ชจ ํด๋์ค์ ๋งค์๋์ ์ด๋ฆ์ด ๋์ผํ ๊ฒฝ์ฐ
same, different, same
Overriding์ Signature๊ฐ ๊ฐ๊ณ ํ๋๋ ๋ถ๋ชจ์ ํ๋๋ ์๋ ์ ์๋ค.
Overload๋ ์ด๋ฆ์ ๊ฐ์ง๋ง Signature๊ฐ ๋ค๋ฅด๊ณ ๊ฐ์ ํด๋์ค ์์ ์๋ค.
cannot be overridden
final์ด๋ผ๋ ํค์๋๊ฐ Method ์์ ๋ถ์ผ๋ฉด Override๋ฅผ ํ ์ ์๋ค.
ํด๋์ค ์ ์ฒด๊ฐ final ์ ์ธ ๋๋ฉด ์ด ํด๋์ค๋ฅผ ๊ฐ์ง๊ณ Child Class๋ฅผ ๋ชป ๋ง๋ ๋ค.
Parent ํด๋์ค์ Instance ๋ณ์๋ฅผ private๋ก ๋ง๋ค์ด ๋์ผ๋ฉด Child ํด๋์ค๊ฐ ์ด ๋ณ์์
์ง์ ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋ค.(๋ถ๋ชจ์ ๊ธ๊ณ ๋ฅผ ๋ณด์ง ๋ง๋ผ)
๋ฐ๋์ public Method๋ฅผ ๊ฐ์ง๊ณ ์ ๊ทผ์ ํด๋ผ
Information Hiding ๊ฐ๋ ์ด ์ฌ์ ํ ์กด์ฌํ๋ค.
Inheritance ๊ฐ๋ ์ UML Diagram
"is a relationship"
์๋ ํด๋์ค ๋ ๋ถ๋ชจ ํด๋์ค์ด๋ค ์ฒ๋ผ ์ฝ์ผ๋ฉด ๋๋ค.
'๐ Major Study (Bachelor) > ๐ JAVA Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JAVA ํ๋ก๊ทธ๋๋ฐ 6.3 (0) | 2021.10.28 |
---|---|
JAVA ํ๋ก๊ทธ๋๋ฐ 8.2 (0) | 2021.10.26 |
JAVA ํ๋ก๊ทธ๋๋ฐ 7.6 (JavaFX) (0) | 2021.10.26 |
JAVA ํ๋ก๊ทธ๋๋ฐ 7.5 (0) | 2021.10.26 |
JAVA ํ๋ก๊ทธ๋๋ฐ 6.2 (0) | 2021.10.26 |