C#/C#정리
[C#] 메소드 오버라이드(딩)
반나무
2021. 9. 20. 09:56
메소드를 덮어씌워서 자식 클래스에서 사용하는 것
메소드 오버라이딩시 virtual, override 예약어를 사용한다.
virtual
부모 클래스에서 메소드 정의 시
class Mammal
{
virtual public void Mode()
{
Console.WriteLine("움직인다.");
}
}
override
자식 클래스에서 메소드 오버라이딩시
class Lion : Mammal
{
override public void Mode()
{
Console.WriteLine("네 발로 움직인다.");
}
}
new
만약 부모클래스에 있는 메소드와 단순히 이름이 똑같은 (여기서는 Move) 메소드를 자식 클래스에서도 정의하고 싶다면 자식클래스에서 new 예약어로 만든다.
그렇지않으면 경고가 난다.
class Lion : Mammal
{
new public void Mode()
{
Console.WriteLine("네 발로 움직인다.");
}
}
반응형