A, B, C ํด๋์ค๊ฐ ์๊ณ ๊ทธ ์์๋ ๋ด์ฉ๋ ๋๊ฐ๊ณ A, B, C ํด๋์ค์ ๋ชจ๋ ์กด์ฌํ๋
์ค๋ณต ํจ์๋ค์ด ๊ฝค๋ ์์ด์ ์ด๊ฑธ ํ๋๋ก ํฉ์น๊ณ ์ถ์
๊ทธ๋ฆฌ๊ณ A, B, C ํด๋์ค๊ฐ ๋ชจ๋ Super ํด๋์ค๋ฅผ ์์๋ฐ๊ณ ์์
๋ด๊ฐ ์๋ํ๋ ๋ฐฉ๋ฒ์ด
1. ์ค๋ณต๋๋ ํจ์๋ค์ Super ํด๋์ค๋ก ์ฎ๊ธฐ๊ณ A, B, C ํด๋์ค์์๋ base.์ค๋ณตํจ์()๋ก ํธ์ถ
-> ๊ทผ๋ฐ Super ํด๋์ค๋ฅผ ์์๋ฐ๋ ํด๋์ค๋ A, B, C ๋ง๊ณ ๋ ๋ง์ด ์๋๋ฐ
A, B, C ์ธ ๊ฐ๋ง์ ์ํ ํจ์๋ฅผ Super ํด๋์ค์ ๋๋๊ฒ ์ฉ ๋ง์ ์๋ฆ
2. ์ธํฐํ์ด์ค ๋ง๋ค๊ณ Super ํด๋์ค์ ์ธํฐํ์ด์ค ์์๋ฐ๊ธฐ
-> ์ธํฐํ์ด์ค์ ๋ฉค๋ฒ๋ณ์๋ ํจ์๊ตฌํ์ ๋ ์๊ฐ ์์ด์ ์ง๊ธ ์ํฉ์ ์ ์ ํ์ง ์์๊ฑฐ๊ฐ์
3. static ํด๋์ค ํ๋ ๋ง๋ค๊ณ ์ค๋ณต๋๋ ํจ์๋ค์ ๊ทธ ์์ static์ผ๋ก ๋ฃ์ด์ ํธ์ถํ๊ธฐ
-> ์ค๋ณต๋๋ ํจ์ ๋ด๋ถ์์๋ ๋์ ์ธ ๋ณ์๋ค๋ ์ฐธ์กฐํ๊ณ ๊ทธ๋์
๋ชจ๋ ๊ฑธ ๋ค ์ ์ ๋ณ์๋ก ๋ฐ๊พธ๊ธฐ ๋ถ๊ฐ๋ฅํจ
๊ธฐ๋ฅ์ ์ค๋ธ์ ํธํํด์ ๋ถ๋ฆฌํ๊ณ ๊ธฐ์กด ํด๋์ค์ ํฌํจํ๊ธฐ
์ปดํฌ๋ํธ ๋ฐฉ์
์ฌ๊ธฐ์ ํํ
ํ ... class D : Super {} ํด๋์ค ํ๋ ๋ง๋ค์ด์ ์ฌ๊ธฐ์ ์ค๋ณต๋๋ ํจ์๋ค ๋ฃ๊ณ A, B, C์๋ D ๊ฐ์ฒด๋ฅผ ๋ฃ์ด์ฃผ๋ผ๋๊ฑฐ์ง?
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
์ฝ์์ค๋ชจ๋ฅด๋ฉด ๊ทธ๋ฅ ์ ๋ตํจํด์ด๋ผ๊ณ ํ๋๊ฒ ์ด๋ป๋ ธ
๊ด๊ณ๊ฐ ์ ๊ฑฐ๋ฟ์ด๋ฉด ๊ทธ๋ฅ super๋ฅผ ์์๋ฐ๋ d๋ฅผ ๋ง๋ค์ด์ ๊ณตํต๋ถ๋ถ ์ฐ๊ณ d๋ฅผ abc๊ฐ ์์๋ฐ์ผ๋ฉด ์๋จ?
์ด๊ฑฐ๋ค ์ ์ด๊ฑธ ์ ์๊ฐ ๋ชป ํ์ง ใณ
Super > D > A, B, C ๊ตฌ์กฐ ๋ง๋ค์ด์ ๊ธฐ์กด์ A, B, C์์ ์ค๋ณต๋๋ ์ฝ๋๋ค D๋ก ์ฎ๊ฒจ์ ๊น๋ํ๊ฒ ๋ฆฌํฉํ ๋งํจ ๋์ด์ค
ํจ์๋ง ์กด์ฌํ๋ ์ธํฐํ์ด์ค ํด๋์ค ํ๋ ๋ง๋ค์ด์ ๋ค์ค์์ ๋ฐ์ผ์
์ ๋ชป์ด๋ค๊ณ ํด๋จ๊ตฌ๋ ๊ทธ๋ผ ์๋๋ง๋๋ก ์ค๊ฐ์ ๋ถ๋ชจํ๋ ๋๋๋๊ฒ ๋ง์ง
์ ๋ง ์์ฃผ ์ฐ์ด๋ ํจ์๋ผ๋ฉด ๋ ์คํํฑ ํด๋์ค ํ๋ ๋ง๋ค๋ฏ
์๋ ๋ง์ฒ๋ผ ์ค๊ฐ์ ํด๋์ค ํ๋ ๋ ๋ง๋ค๋ฉด ๋ ๋ฏ ์์๋ค๋ฉด ์ด๋ฉ ์ค๋ฉ ๊ณ ๋ฉ ํด๋์ค๋ฅผ ์ฌ๋ ํด๋์ค์ ๋ฃ์๋ ์ง์ฅ์ธ ํด๋์ค๊ฐ์๊ฑด ์์ฐ๋ ํจ์๊ฐ ์๋ค๋๊ฑฐ๋ ์ค๊ฐ์ ํ์ ํด๋์ค๋ฅผ ๋ง๋ค๋ฉด ๋จ
abstract class Super : MonoBehaviour ๋ง๋ค์ด์ A, B, C ๋ Super ์์ ์ํค๊ณ ์ค๋ณต๋๋ ํจ์๋ค์ virtual ๋ก ๋ง๋ค๊ณ ์ ๋ค ์ค๋ณตํจ์๋ฅผ ์ฐ๋ฉด ์ค๋ณต ํจ์ ๋ด์ฉ์ Super ํด๋์ค์์ ์ ์ํ๋ฉด๋๊ณ ๋ง์ฝ Attack() ์ด๋ ํจ์๊ฐ ์ค๋ณต์ธ๋ฐ A ๋ ๊ทผ์ ๊ณต๊ฒฉ, B๋ ์๊ฑฐ๋ฆฌ ๊ณต๊ฒฉ, C๋ ๋ง๋ฒ ๊ณต๊ฒฉ ๊ฐ์ ๊ฒฝ์ฐ override ํด์ ์์ ํ๋ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค. ์ง๋ฌธ ์ทจ์ง์ ๋ง๋ ๋ต๋ณ์ธ๊ฑด์ง ๋ชจ๋ฅด๊ฒ ๋ค์ฌ
์ฐธ๊ณ ๋ก ๋ฉค๋ฒ๋ณ์๋ค์ protected๋ก Super ํด๋์ค์ ์ ์ธํด๋๋ฉด ์๋์ผ๋ก ์์๋ฐ์ ์์๋ค์ด ์ ๊ทผ ๊ฐ๋ฅ