상속 가상 함수 선언
//상속 가상 함수 선언
class Unit
{
public virtual void Test() // virtual public void Test() 도 가능
{
Console.WriteLine("유닛이다.");
}
}
//virtual 선언시 주의 사항 :
//1. private로 만들 수 없다. 접근 자체가 불가하므로 컴파일이 안됨.
//2. static으로도 만들 수 없다. 객체의 상속 관계에서 적용되는 것인다. 메모리 계속 유지되어있는 static은 재정의 할 수 없다.
class Gunner: Unit
{
public override void Test() // override public void Test() 도 가능
{
Console.WriteLine("거너롤세.");
}
}
//또 이를 상속받은 클래스가 다시 재정의 할 수도 있다.
class Mechanic : Gunner
{
public override void Test() // override public void Test() 도 가능
{
Console.WriteLine("메카닉이야.");
}
}
/*
====================================
만약 재정의 하려는 의도가 아니라
새로운 함수를 추가한 것임을 알리기 위해서는
new를 명시적으로 적어주면 된다.
====================================class Mechanic : Gunner
{
new public void Test() // public new void Test() 도 가능
{
}
}
/*
====================================
*/
'공부 > C#' 카테고리의 다른 글
델리게이트(delegate) - 대리자 (0) | 2016.05.08 |
---|---|
함수 주석 /// (0) | 2016.05.08 |
상속 protected 접근 (0) | 2016.05.08 |
상속 정의 (0) | 2016.05.06 |
class 변수 선언 - get, set (0) | 2016.05.06 |