아카이빙/C#

[C#] 인터페이스 다중 상속

셩님 2018. 6. 18. 19:24

[C#] 인터페이스 다중 상속

  • C#에서 클래스는 여러 클래스를 동시에 상속할 수 없다.

  • 대신 인터페이스는 다중 상속이 가능하다.

IUpgradable, ISellable 인터페이스

interface IUpgradable
{
   void Upgrade();
}

interface ISellable
{
   void Sell();
}

IUpgradable, ISellable을 상속받은 Monster 클래스

//Monster는 업그레이드도 할 수 있고, 팔 수도 있다.
class Monster : IUpgradable, ISellable
{
   public int Level {get; set;}
   public int Price {get; set;}

   public void Upgrade()
  {
       Console.WriteLine("Upgrade Monster!! : Level {0}", ++Level);
       Price += 1000;
  }

   public void Sell()
  {
       Console.WriteLine("Sell Monster!! : ${0}", Price);
  }
}

ISellable을 상속받은 Item 클래스

//Item은 팔 수만 있다.
class Item : ISellable
{
   public int Price {get; set;}

   public void Sell()
  {
       Console.WriteLine("Sell Itm!! : ${0}", Price);
  }
}

테스트

class MainApp
{
   static void Main()
  {
       Monster monster = new Monster();
       monster.Level = 3;
       monster.Price = 2000;

       Item item = new Item();
       item.Price = 318;

       monster.Upgrade();
       monster.Sell();

       item.Sell();
  }
}

결과

Upgrade Monster!! : Level 4
Sell Monster!! : $3000
Sell Itm!! : $318

참조

  • 뇌를 자극하는 C# 5.0 프로그래밍, 박상현, 한빛미디어