C#/수업 내용

메서드 오버라이딩

Bueong_E 2023. 1. 10. 17:06
반응형
SMALL

App단

using System;
using System.Collections;
using System.Collections.Generic;

namespace Study09
{
    class App
    {
        public App()
        {
            Marine marine = new Marine();
            Firebat firebat = new Firebat();

            marine.Attack();
            firebat.Attack();
        }
    }
}

테란 유닛

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study09
{
    class TerranUnit
    {
        //생성자 
        public TerranUnit()
        { 

        }

        //재정의를 위해 virtual 키워드를 부모 클래스 메서드에 정의 
        public virtual void Attack()
        {
            Console.WriteLine("공격합니다.");
        }
    }
}

마린

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study09
{
    class Marine : TerranUnit
    {
        //생성자 
        public Marine()
        { 

        }

        public override void Attack()
        {
            //base.Attack();
            Console.WriteLine("마린이 총으로 공격 했습니다.");
        }
    }
}

파이어뱃

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study09
{
    class Firebat : TerranUnit
    {
        //생성자 
        public Firebat()
        { 

        }

        public override void Attack()
        {
            Console.WriteLine("파이어벳이 화염방사기로 공격 했습니다.");
            //base.Attack();
        }
    }
}
반응형
LIST