void Test02() { C07_3_Player player1 = new C07_3_Knight(); C07_3_Player player2 = new C07_3_Archor(); C07_3_Player player3 = new C07_3_Mage(); Debug.Log("--------------이동 함수 발동 시-----------"); player1.Move(); // 기사의 Move()는 new로 선언했으므로 별개의 함수다. 여기선 Player로 불러왔으니 Player의 이동 함수만 실행된다. player2.Move(); // 궁수의 Move()는 부모 클래스를 오버라이드했다. 따라서 자식 클래스 Archor의 이동 함수만 실행된다. player3.Move(); // 마법사의 Move()는 부모 클래스를 오버라이드했지만, 부모 클래스의 함수를 base.Move()로 추가해 주었다. 따라서 부모 클래스와 자식 클래스의 함수가 둘 다 실행된다. }
C07_3_Player GetPlayer(int type) { C07_3_Player player = null; switch (type) { case 0: player = new C07_3_Knight(); break; case 1: player = new C07_3_Archor(); break; case 2: player = new C07_3_Mage(); break; } return(player); }