์ด๋ ๊ฒ ํ๋ฉด Main ์ CallFunc๊ฐ ์คํ๋์ ๋ Child ๋ง๊ณ Parent์ SubFunc๊ฐ ์คํ๋จ
์ค์ ์ฝ๋ ๋ณด์ฌ์ฃผ๊ณ ์ถ์๋ฐ ์ข ๋ ๋ณต์กํด์ ๊ตฌ์กฐ๋ง ์ผ์
Parent์ MainFunc๋ virtual๋ก ๋ฐ๊พธ๊ณ override ํด๋ ๋ง์ฐฌ๊ฐ์ง์
ํจ์ ํ๋ผ๋ฏธํฐ์ ๋ถ๋ชจ ํด๋์ค ๋ฃ์ผ๋ฉด ๋ถ๋ชจ๋ก ํ๋ณํ์ด ๋ผ๋ฒ๋ฆฌ๋ ๊ฑด๊ฐ? ํ
ํจ๋ฐ์ธ ๋ฅผ ๋ฃ์ผ๋ฉด ํจ๋ฐ์ธ ๋ฅผ ์ฐ์ง
c#์ ์๋ง์ ธ๋ด์ ๋ชจ๋ฅด๋๋ฐ ์๋ฐ์์๋ ์ฝ๋์ฒ๋ผ ํ๋ ค๋ฉด ๋ค์ ์ฐจ์ผ๋๋ก ๋ง๋ค์ด์ฃผ๊ณ ๊ทธ๋ฌ๋๊ฑธ๋ก ๊ธฐ์ตํจ
parent๋ก ๋ฐ์์ค๋๊น parent๋ฅผ ์ฐ์ฃ ใ ใ
ํ๋ ค๊ณ ํ๋ ๊ฒ Parent ์์๋ฐ๋ ์ ๋ค ์ฌ๋ฟ ๋ง๋ค์ด์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋์ํ๊ฒ ํ๋ ค๊ณ ํ๋๋ฐ ์ด๋ด ๋๋ ๊ทธ๋ผ ์ธํฐํ์ด์ค๋ฅผ ๋๊ฒจ์ผ ํ๋ ค๋ ํ
(child)parent ์ด๋ฐ์์ผ๋ก ํ๋ฉด ๋๋์ง ์คํ์
์๋ฏธ๊ฐ ์๋ ๊ฒ ๊ทธ๋ฌ๋ฉด ์์ ํด๋์ค๋ฅผ ๋ค ์์์ผ ํ๊ณ ๊ทธ๊ฑธ๋ก ํ๋ณํํด์ค์ผ ํ๋๋ฐ ๊ทธ๊ฑด ์๋ ๊ฑฐ ๊ฐ์ ใ ใ
๊ทธ๋ฌ๋ฉด ๊ทธ๋ฅ ์ถ์ํจ์ ์ฐ๋ฉด ๋๋๊ฑฐ ์๋?
ใ ใ ์ถ์ ํด๋์ค๋ ์ธํฐํ์ด์ค ์ฐ๋ฉด ๋ ๊ฑฐ ๊ฐ์ ์ผ๋จ ์ค๋์ ์ง์ณ์ ๋ด์ผ ๋ง์ ํ๋ ค๊ตฌ
์ ๊ธฐํ๋ค ๋ณธ๋ฌธ๋๋ก Parent๋ก ํ๋ณํ๋๋๊ฑด๊ฐ?
์ ๊ธฐํ ๊ฒ ์๋? Parent๋ก ๋ฐ์์ค๋ Parent์ ๋ฉ์๋ ์คํํ๋๊ฑด๋
๋ ์ ๊ธฐํด์ ๊ธฐ๋ณธ c# ์ฝ์ํ๋ก์ ํธ๋ก ๋ง๋ค์ด์ ํ๋๋ฐ child์ ์๋๊ฑฐ ํธ์ถํจ
๊ทธ๋? ํฌํํ๊ตฐ
ํ๋ ๋ ์ถ๊ฐํ๋ฉด ์ Parent๋ ์ฑ๊ธํค์ด๊ณ , ํ๋ผ๋ฏธํฐ์ Child์ Instance๋ฅผ ๋๊ฒจ์ค ์ ์ง ์ธํฐํ์ด์ค๋ก ํด๊ฒฐ ๋ ๊ฑฐ ๊ฐ์๋ฐ ํด๊ฒฐํ๋ฉด ๋ ๊ธ ์ฌ๋ฆด๊ป
์ ๋ํฐ๋ก ์ ์ฝ๋ ํ ์คํธํด๋ดค๋๋ฐ child ํธ์ถํจ Parent๊ฐ ์ฑ๊ธํค์ด๋ผ๋ ๋ง์ ์ธ์คํด์ค ๋๋๊ฑด๊ฐ? ์๋๋ฉด ๊ทธ๋ฅ static์ผ๋ก ๋ณ์๋ง ์ ์ธํ๊ฑด๊ฐ? Parent์ ๋ณ์์ newํ๋ ๋ถ๋ถ์ ์์ดํด๋ด์ผํ ๊บผ๊ฐ์
์ ํ์ ์ธ ์ฑ๊ธํค์ Child.Instance ํธ์ถํ ์ ์๊ฒ ๋ง๋ ๊ฑฐ ๋ด์ผ ๋ค์ ๊ธ ์ฌ๋ฆผ~
๋ญ์ง ์ด์ํ๋ฐ..
์ปดํ์ผ ๋ค์ ์๋๊ฑฐ ์๋์์?
ใดใด ์ ๋์
๋ ํผ๋ฐ์ค ํ์ ์ด parent ์ด๋์ง, child ์ด๋์ง ์๊ด์์ด( Parent parent = obj; parent.SubFunc() ๋ ์ง, Child child = obj; child.SubFunc() ๋ ์ง ์๊ด์์ด) ์์ฑ๋ ์ค๋ธ์ ํธ๊ฐ parent ์ด๋ฉด parent ์ subFunc๊ฐ ํธ์ถ๋๊ณ child ์ด๋ฉด child์ subFunc๊ฐ ํธ์ถ๋จ.
์ด๋์ ๊ฐ ํ ์คํธ๊ฐ ์๋ชป๋๊ฑฐ์.
๊ทธ๊ฒ ์๋๋ผ๋ฉด ๋์ฒด virtual์ด ๋ฌด์จ ํ์๊ฐ ์์? ์์ ๋๊ธ๋จ ๋๋ค ๊ธฐ์ด์ ๋๋ ๊ณต๋ถํ๊ณ ์๋์ฒ์ข ํ์~~~~
๊ถ๊ธ์ฆ ํด๊ฒฐ ใณ ์ค์ ์ฝ๋ ๊ธ์ ์ง์ ์
์๋ ์ด๋ณด๋ฉด ๋น์ฐํ ์๋ชจ๋ฅผ์๋ ์๊ณ ์ค์๋ก ์๋ชป์๊ณ ์๋ชป๋ ์ ๋ณด๋ฅผ ์ค์๋ ์๋๋ฐ , ๋ฑ๋ณด๋ฉด ์ ํ ๋ชจ๋ฅด๋ ์ํ์ธ๋ฐ ์ ์์๋์ฒ ๋๊ธ์ ๋ค๋์ง ~~ ์ง๋ฌธ์๋ ์๋ชป๋ ๋๊ธ์ ๋ช์๊ฐ์ ๋ญ๋นํ๋๋ฐ~~ ์จ๊ธ๋๋ค~~
ใดใด ๋ค๋ค ๋์์ฃผ๋ ค ํ ๊ฑฐ์ง
๋น์ฐํ ์ข์ ๋ง์์ผ๋ก ๋์์ฃผ๋ ค๊ณ ํ๋๋ฐ ์๋ชป์๊ณ ์์์๋ ์์ง ๊ทผ๋ฐ ๋๊ธ๋ณด๋ฉด ์ค์ ํด๋ณธ์ ๋ค์ด ์ด๊ธ์ด ์ ๋๋ก ์๋. ~ ๋์ฒด ์ ๊ทธ๋ฌ๋์ง ์~~
ํจ์ ์์ฌ์?