EventHandler๋ฅผ ์์ฑํ๊ณ ์ ์ฌ๋ฌ ๋ฌธ์๋ค์ ์ฐธ์กฐํ๊ณ ๋ค๋ ๋๋ฐ ๋ถ๋ชจ ํด๋์ค๋ฅผ ์์๋ฐ์ ๋ extends ํน์ implements๋ฅผ ์ฌ์ฉํ๋ ๋ชจ์ต์ ๋ณผ ์ ์์๋ค.
extends, implements์ ๋ํ ์ฐจ์ด๋ฅผ ๋งํ๊ธฐ ์ ์ ์ถ์ํด๋์ค์ ์ธํฐํ์ด์ค์ ์ฐจ์ด๋ฅผ ์ดํดํด์ผ ํ ๊ฒ ๊ฐ๋ค.
[์ถ์ํด๋์ค vs ์ธํฐํ์ด์ค]
์ถ์ํด๋์ค
- ํ๋ ์ด์์ ์ถ์๋ฉ์๋๋ฅผ ํฌํจํ๊ฑฐ๋ abstract๋ก ์ ์๋๋ค.
- ์ถ์ํด๋์ค๋ ํด๋น ์ถ์ํด๋์ค์ ๊ธฐ๋ฅ์ ์ด์ฉํ๊ณ , ํ์ฅํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
- ๊ฐ์ ์ข ๋ฅ๋ ํ๋๋ค์ ๊ตฌํํ ๊ฒ ๋ง์๋ ์ฌ์ฉํ๋ค.
- ์์์ ๋ํ ๊ณ์ธต๊ตฌ์กฐ๋ฅผ ๋ช ํํ ํํํ ๋ ์ถ์ํด๋์ค๋ฅผ ์ด์ฉํ๋ค.
์ธํฐํ์ด์ค
- ๋ชจ๋ ๋ฉ์๋๊ฐ ์ถ์๋ฉ์๋์ด๋ค.
- ํจ์์ ๊ตฌํ์ ๊ฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
- final์ ๋ถ์ผ ์ ์์ผ๋ฉฐ, ์ธํฐํ์ด์ค ๋ณ์๋ static์ด์ด์ผํ๋ค.
- ์์ฑ์๋ฅผ ๊ฐ์ง ์ ์๋ค.
- ๋์์ธ์ ๊ตฌ์ฑํ๋ ์์๋ค์ด ์์ฃผ ๋ฐ๋๋ ์ฐ๋ฉด ์ ์ฉํ๋ค.
- ํด๋์ค ์ ์ฒด๊ฐ ์๋ ๋ฉ์๋๋ค๋ง ์ฐ๊ณ ์ถ์๋ ์ธํฐํ์ด์ค๋ฅผ ์ด์ฉํ๋ฉด ํจ๊ณผ์ ์ด๋ค.
0. ์์(Inheritance)
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP)์ ํน์ง์ค ํ๋๋ก ๋ถ๋ชจํด๋์ค๋ก๋ถํฐ ์์ํด๋์ค๊ฐ ์์๋ฐ์ ๋ถ๋ชจํด๋์ค์ ํน์ฑ์ ๊ฐ์ง ์ ์๋ค๊ณ ์๊ณ ์๋ ๊ทธ ์์์ด๋ค.
1. extends (์์ ์์)
์ผ๋ฐ/์ถ์ ํด๋์ค ์์์ ์ฌ์ฉ๋๋ค.
์ค๋ฒ๋ผ์ด๋ฉ์ ํ ํ์ ์์ด ๋ถ๋ชจ ํด๋์ค์ ๊ตฌํ๋์ด์๋ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์๋ค. ์ฆ ๋ถ๋ชจ๋ก๋ถํฐ ๋ชจ๋ ์์, ๊ถํ์ ์ป์ด์ด์ ๋ปํ๋ค.
Java์์๋ ๋ค์ค ์์์ ํ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ extends๋ฅผ ํตํด์๋ ๋จ ํ๋์ ํด๋์ค๋ง ์์๋ฐ์ ์ ์๋ค.
2. implements (๊ตฌํ ์์)
์ธํฐํ์ด์ค ์์์ ์ฌ์ฉ๋๋ค.
์์ ๋ด์ฉ์ ๋น์ด์์ผ๋ฉฐ ํด๋น ๋ด์ฉ์ ์ง์ ์์ฑํด์ผํ๋ค.
์ฌ๋ฌ๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ์ ์ ์๋ค.
implementsํ ํด๋์ค๋ ์์๋ฐ์ ๋ด์ฉ์ ๋ชจ๋ ์ฌ์ฉํด์ผํ๋ค.
์กฐ๊ธ ์์ํ ๋ด์ฉ์ด๋ผ ์ ๋ฆฌ๊ฐ ์ํฐ๊ฐ์ด ๋ณด์ธ๋ค. ๋ง์ด ์ฌ์ฉํด๋ณด๋ ๊ฒ์ด ๊ฐ์ฅ ๋น ๋ฅธ ์ดํด๋ฅผ ๋์ธ ๊ฒ ๊ฐ๋ค.
๋์ค์ ์ฌ์ฉํด๋ณผ ์ผ์ด ์์ผ๋ฉด ์ ๋ฆฌํด๋ ๋ด์ฉ + α์ ๋ด์ฉ์ ์ฐธ๊ณ ํ๋ฉด์ ์จ๋ด์ผ๊ฒ ๋ค.
*Reference
http://alecture.blogspot.com/2011/05/abstract-class-interface.html
http://gdthink.blogspot.com/2006/06/extends%EC%99%80-implements%EC%9D%98-%EC%B0%A8%EC%9D%B4.html
https://hyeonstorage.tistory.com/180
'๐ฌ Language > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Calculator ์ค์ต ์์ฑ (0) | 2020.01.18 |
---|---|
StringTokenizer (0) | 2020.01.18 |
Event๋? (0) | 2020.01.11 |
GUI ํํํ๊ธฐ (0) | 2020.01.09 |
split ํจ์์ ์ ๊ทํํ์ (0) | 2020.01.08 |