본문 바로가기
유니티 공부/C# 문법

C# 문법 - 상속에서 override vs new

by 코딩하는 돼징 2023. 5. 9.
반응형

override

override 키워드로 구현하게 되면 자식 클래스의 객체를 부모 클래스의 객체 처럼 사용하더라도 자식 클래스의 함수가 호출된다. 

class Pig
{
    public virtual void Eat()
    {
        Console.WriteLine("먹는다");
    }
}
class PinkPig : Pig
{
     public override void Eat()
     {
         Console.WriteLine("분홍돼지가 먹는다");
     }
}
static void Main(string[] args)
{
    Pig pinkPig = new PinkPig();
    pinkPig.Eat();
}


new

new 키워드로 구현하게 되면 기존의 부모와 별개의 함수가 되므로 부모 클래스의 함수가 호출되고 자식 클래스에서는 자식 클래스의 함수를 호출한다.

class Pig
{
    public virtual void Eat()
    {
        Console.WriteLine("먹는다");
    }
}
class BluePig : Pig
{
     public new void Eat()
     {
         Console.WriteLine("파란돼지가 먹는다");
     }
}
static void Main(string[] args)
{
    Pig bluePig = new BluePig();
    bluePig.Eat();
}

반응형

'유니티 공부 > C# 문법' 카테고리의 다른 글

C# 문법 - Tuple<T1,T2>  (0) 2023.06.14
C# 문법 - is, as, typeof 연산자  (0) 2023.05.17
C# 문법 - enum(열거형)  (0) 2023.05.09
C# 문법 - Nullable type  (0) 2023.04.20
C# 문법 - Reflection, Attribute  (0) 2023.04.20

댓글