Blog Content

    티스토리 뷰

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

    반응형

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

    부모클래스의 함수 앞에 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 하고 띄면 정의된 것을 확인 할 수 있다.

    결과화면

    반응형

    Comments