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