class Test
{
ย ย public virtual void TestMethod()
ย ย {
ย ย ย ย Debug.Log("Hello");
ย ย ย ย return;
ย ย }
}
class Test1 : Test
{
ย ย public override void TestMethod()
ย ย {
ย ย ย ย base.TestMethod();
ย ย ย ย Debug.Log("World");
ย ย }
}
์ด ์ฝ๋์์ Test1 ํด๋์ค์ TestMethod๋ฅผ ์คํํ๋ฉด World๊น์ง ์ถ๋ ฅ์ด ๋ผ?
๋ง์ฝ World๊น์ง ์ถ๋ ฅ์ด ๋๋ฉด World๊ฐ ์ ๋์ค๊ฒ,
๊ทธ๋ฌ๋๊น base.TestMethod์ return์ด ์ค๋ฒ๋ผ์ด๋ฉํ ๋ฉ์๋๊น์ง ์ํฅ์ ์ฃผ๋ ๋ฐฉ๋ฒ์ด ๋ญ์?
์ด ์ํ์์ Test1.TestMethod()ํ๋ฉด ๋๊ฐ base.TestMethod()๋ฅผ ํธ์ถ ํ์ผ๋ Hello + World ๋์ค์ง. Test.TestMethod()ํ๋ฉด Hello๋ง ๋์ค๊ณ , Test1์์ World ์ถ๋ ฅ ์ซ์ผ๋ฉด ๊ฑ ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ ์ํ๋ฉด ๊ทธ๋ง์ด๊ณ ๋ฆฌํด ๊ฐ์ ๋ฐ๊ณ ์ถ์ผ๋ฉด public virtual (return type) TestMethod()๋ก ์์ฑํ๋ฉด ๋๊ณ
์ค๋ฒ๋ผ์ด๋ฉ์ ์ ํ๋ฉด ๋์์
์ค๋ฒ๋ผ์ด๋ฉ์ ์์ ํจ์์ ๋ด์ฉ ์ถ๊ฐํ๊ธฐ ์ ๋๋ก ์๋ชป ์๊ฐํ๊ณ ์์์..
๋น์ต ์ด๋ค ์๋์ ์ํ๋์ง ์ดํด๊ฐ ์ ๊ฐ
if๋ฌธ์ผ๋ก ๋ถ๋ชจ ํจ์๋ฅผ ํธ์ถํ ์ง ์ค๋ฒ๋ผ์ด๋๋ ํจ์๋ฅผ ํธ์ถํ ์ง ๋๋๊ณ ์ผ๋ฆฌ ๋ฆฌํด ํ์ธ์ - dc App
base.TestMethod ๋ฅผ ํ ์๊ฐ๋ถํฐ TestMethod() ํจ์๋ ๋ชจ๋ ํธ์ถ๋๋๋ฐ? ์ค๋ฒ๋ผ์ด๋ฉ์ ์ ์ฐ๋์ง ํ๋ฒ ๋ ํ์ธํด๋ณด๋๊ฒ ์ข์ ๋ฏ