๐ Today I Learned - ์ค๋ ๋ด๊ฐ ๊ณต๋ถํ ๊ฒ์ ์ ๋ฆฌํฉ๋๋ค.
ํน์ ๋ณ์์ ๊ฐ์ ํ ๋นํ ์ดํ์ ๋ณ๊ฒฝํ์ง ์์์ผ ํ๋ค๋ฉด final์ ์ฌ์ฉํ์.
final์ class, method๋ฅผ ํฌํจํ ์ฌ๋ฌ ๊ณณ์ ๋ถ์ ์ ์๋ค.
static ์์ญ์ ๋จ ํ๋๋ง ์กด์ฌํ๋ ์์ญ์ด๋ค. static ๋ณ์๋ JVM ์์์ ํ๋๋ง ์กด์ฌํ๋ฏ๋ก ์ฝ๋์ ์ค๋ณต๊ณผ ๋ฉ๋ชจ๋ฆฌ ๋นํจ์จ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
์์๋ ๋ณํ์ง ์๊ณ , ํญ์ ์ผ์ ํ ๊ฐ์ ๊ฐ๋ ์๋ฅผ ๋งํ๋ค. ์๋ฐ์์๋ ๋ณดํต ๋จ ํ๋๋ง ์กด์ฌํ๋ ๋ณํ์ง ์๋ ๊ณ ์ ๋ ๊ฐ์ ์์๋ผ ํ๋ค.
์์์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํต์ฌ ์์ ์ค ํ๋๋ก, ๊ธฐ์กด ํด๋์ค์ ํ๋์ ๋ฉ์๋๋ฅผ ์๋ก์ด ํด๋์ค์์ ์ฌ์ฌ์ฉํ๊ฒ ํด์ค๋ค. ์ด๋ฆ ๊ทธ๋๋ก ๊ธฐ์กด ํด๋์ค์ ์์ฑ๊ณผ ๊ธฐ๋ฅ์ ๊ทธ๋๋ก ๋ฌผ๋ ค๋ฐ๋ ๊ฒ์ด๋ค. ์์์ ์ฌ์ฉํ๋ ค๋ฉด extends ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. ๊ทธ๋ฆฌ๊ณ extends ๋์์ ํ๋๋ง ์ ํํ ์ ์๋ค.
๋ถ๋ชจ ํด๋์ค(์ํผ ํด๋์ค): ์์์ ํตํด ์์ ์ ํ๋์ ๋ฉ์๋๋ฅผ ๋ค๋ฅธ ํด๋์ค์ ์ ๊ณตํ๋ ํด๋์ค์์ ํด๋์ค(์๋ธ ํด๋์ค): ๋ถ๋ชจ ํด๋์ค๋ก๋ถํฐ ํ๋์ ๋ฉ์๋๋ฅผ ์์๋ฐ๋ ํด๋์ค๋ถ๋ชจ์๊ฒ์ ์์ ๋ฐ์ ๊ธฐ๋ฅ์ ์์์ด ์ฌ์ ์ ํ๋ ๊ฒ์ ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ(Overriding)์ด๋ผ๊ณ ํ๋ค.
๐ญ TIL ์์ฑ ์ ๋ฒจ๋ก๊ทธ๋ฅผ ๋๋ฌ๋ณด๋ค ๋ถํธ์บ ํ์ ์ฐธ์ฌ ์ค์ด์ ๋ถ์ ํฌ์คํ ์ ๋ณด๊ฒ ๋์๋ค. ๋ค๋ฅธ ๋ถ๋ค์ TIL์ ๋ณด๊ณ ๋๋ ๋ง๋ก๋ ์ด์ฌํ ๊ณต๋ถํ๋ ์ฒ, ์ทจ์คํ๋ ์ฒ ํ๋๋ฐ ์ฌ์ค ๊ทธ๋ ๊ฒ ํ์ง ์์ ๊ฒ ๊ฐ์ ๋ถ๋๋ฌ์ ๋ค. ์ฃผ์ด์ง ์๊ฐ๋์ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋๋ก ์ค์ค๋ก ๋ถ๋๋ฝ์ง ์๊ฒ ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค.