[Java] ์์ vs ์ปดํฌ์ง์
, ์ธํฐํ์ด์ค vs ์ถ์ ํด๋์ค ๋น๊ต ๋ฐ OOP ์ค๊ณ ๊ธฐ์ค ์ด์ ๋ฆฌ
ยท
Java
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP)์ ํต์ฌ์ธ ์์๊ณผ ์ธํฐํ์ด์ค, ์ถ์ํ ํด๋์ค๋ ์ค๊ณ ๋ฐฉํฅ์ ๊ฒฐ์ ํ ๋ ์์ฃผ ๋ง์ฃผํ๊ฒ ๋๋ ์ ํ์ง๋ค.์ฐ๋ฆฌ๋ ๊ฐ์ฒด์งํฅ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ฃผ๋ก 2๊ฐ์ง ๊ฐ๋ฆผ๊ธธ์์ ๊ณ ๋ฏผํ๊ฒ ๋๋ค.์ด๋ค ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ๋, ์ด๋ฅผ extends๋ก ์์๋ฐ์์ ํด๊ฒฐํ ์ง, ์๋๋ฉด ํด๋น ๊ฐ์ฒด๋ฅผ ๋ด๋ถ์ ํฌํจ(composition)์์ผ์ ์์ํ ์ง ๊ฒฐ์ ํด์ผ ํ๋ค.์ฌ๋ฌ ๊ตฌํ์ฒด๊ฐ ๊ณตํต๋ ๊ธฐ๋ฅ์ ๊ฐ์ ธ์ผ ํ ๋, ๊ทธ ๊ธฐ๋ฅ์ ์ธํฐํ์ด์ค๋ก ํ๋ ๊ท์ฝ๋ง ์ ์ํ ์ง, ์๋๋ฉด ์ถ์ ํด๋์ค๋ก ๊ณตํต๋ ๊ธฐ๋ณธ ๋ก์ง๊ณผ ์ํ๊น์ง ํจ๊ป ์ ๊ณตํ ์ง ํ๋จํด์ผ ํ๋ค.์ด๋ค ๊ธฐ์ค์ผ๋ก ์ค๊ณ๋ฅผ ํด์ผ๋ ๊น? ์ด๋ฅผ ์ํด์ ์์, ์ธํฐํ์ด์ค, ์ถ์ํ ํด๋์ค ๊ฐ๋
์ ๋ช
ํํ๊ฒ ์ดํดํ๋ ๊ฒ์ด ์ค์ํ๋ค. ์ด๋ค ์ค๊ณ๊ฐ ๋ ์ ์ฐํ๊ณ ์ ์ง๋ณด์ํ๊ธฐ ์ข์ ์ฝ๋..