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 프로그래밍, 박상현, 한빛미디어
'아카이빙 > C#' 카테고리의 다른 글
[C#] 추상클래스와 인터페이스 (0) | 2018.06.18 |
---|---|
[C#] 여러 인터페이스의 멤버를 명시적 구현 (0) | 2018.06.18 |
[C#] 인터페이스를 상속하는 인터페이스 (0) | 2018.06.18 |
[C#] 인터페이스 (0) | 2018.06.18 |
[C#] 구조체 (0) | 2018.06.18 |