Programing/C#

Warning CS0114 로 보는 함수 오버라이딩

Ezzi 2017. 11. 10. 10:53
반응형




.Net에서 Virtual 이나 Abstract로 선언된 메서드를 자식 클래스에서 override 하지 않고 사용할 경우 Warning CS0114 가 나오게 된다.




ex) Example Code


public class ParentClass

{

     public virtual void Func();

}


public class ChildClass : ParentClass

{

     public void Func();     // CS0114  Warning

     

     public override void Func();     // override 를 해주면 warning 이 사라진다.

}

 



추상 클래스 형태도 동일하게 적용 된다.


ex) Example Code


abstract public class ParentClass

{

     public abstract void Func();

}


public class ChildClass : ParentClass

{

     public void Func();     // CS0114  Warning

     

     public override void Func();     // override 를 해주면 warning 이 사라진다.

}

 



또한 함수 오버라이딩을 할때 자식 클래스에서 지시 한정자를 변경할 수 없다.


 

ex) Example Code


abstract public class ParentClass

{

     public abstract void Func();

}


public class ChildClass : ParentClass

{

     protected override void Func();      // Error

}




반응형