게임개발공부/C#공부

override 문법의 직관화

JJOREG 2013. 12. 20. 03:12

override --------------------------------------------------------------------------------------------------------------------------------------


override는 메소드를 하위클래스에서 중복선언할때 사용할수 있는 참조 문법이다.

c++에서 사용했던 오버라이드를 직관성있게 문법 그 자체로 표현하고 있다.


namespace ConsoleApplication1

{

    class p1

    {

        public virtual void go() -> 부모클래스에서 정의한 go() 메소드

        {

            Console.WriteLine("z");

        }

    }


    class c1 : p1

    {

        public override void go() -> 

        {

            Console.WriteLine("zz"); -> 부모클래스에서 정의한 go() 메소드

        }

    }

    class Program

    {

        static void Main()

        {

            p1 c11 = new c1();

            p1 p11 = new p1();

            c11.go(); -> 다형성을 이용하여 p1선언을 c1클래스로 객체화 시켰다. 그러므로 c1의 go()함수가 호출된다.

            p11.go(); -> p1을 그냥 p1클래스로 객체화 시켰다. 그러므로 p1의 go()함수가 호출된다.

        }

    }

}


c#에서는 기존의 특별한 구문없이 이루어지던 클래스와의 관계를 문법적으로 묶어서 오히려 더 직관적이다.

이런점은 고위언어로서의 장점으로 보인다.