override 문법의 직관화
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#에서는 기존의 특별한 구문없이 이루어지던 클래스와의 관계를 문법적으로 묶어서 오히려 더 직관적이다.
이런점은 고위언어로서의 장점으로 보인다.