C#

57.C# - 클래스상속 -2- ( ClassInheritance )

Godffs 2009. 8. 14. 20:17
반응형

메서드 재정의 입니다. 자식클래스가 부모클래스로 부터 상속받은 함수를
재정의 해서 사용하는 방법입니다.

부모클래스의 함수 앞에 virtual 을 붙여주고 자식클래스는 함수 앞에
override를 붙여줍니다.


Program.cs
using System;

public class 상속
{
    public static void Main()
    {
        Hyundai sonata = new Hyundai();
        sonata.Run(); //공통
        sonata.Left(); //전용

        GM matiz = new GM();
        matiz.Back();
        matiz.Right();
    }
}

Car.cs
using System;
//공통
public class Car : Object
{
    //자식에게만 보여주고 싶을때 사용
    protected void Run()
    {
        Console.WriteLine("전진");
    }

    public virtual void Back()
    {
        Console.WriteLine("후진");
    }
}

//현대 전용
public class Hyundai : Car
{
    public void Left()
    {
        Console.WriteLine("좌회전");
    }
    public new void Run()
    {
        Console.WriteLine("현대 전진");
    }
}

//대우 전용
public class GM : Car
{
    public void Right()
    {
        Console.WriteLine("우회전");
    }

    //부모에게 virtual 붙어있으면 override 붙여서 사용한다.
    public override void Back()
    {
        Console.WriteLine("대우 전진");
    }
}
//public override 하고 띄면 정의된 것을 확인 할 수 있다.

결과화면

반응형