추상클래스와 인터페이스 특강
public abstract class InterAbstract
{
public abstract void Phace1();
public abstract void Phace2();
public abstract void Phace3();
public void EndGame()
{
Phase1();
Phase2();
Phase3();
}
}
public class StartingNPC : InterAbstract
{
public override void Phase1()
{
Console.WriteLine("1");
}
public override void Phase2()
{
Console.WriteLine("2");
}
public override void Phase3()
{
Console.WriteLine("3");
}
public class ProgramEX
{
Card card = new Card();
Cash cash = new Cash();
SamsungPay sp = new SamsungPay();
BodyScanner scanner = new BodyScanner();
void Main()
{
GetPayment(card);
GetPayment(cash);
GetPayment(sp);
GetPayment(scanner);
GetPaymentEx(cash);
}
void GetPayment(IPay pay)
{
pay.PaymentEx();
}
}
public class Card
{
}
public interface IPay
{
public void Payment();
}
public interface UseRounge
{
public void UseRounge();
}
public class AmexCard : Card, IPay, UseRounge // 클래스는 최대 1개, 인터페이스는 여러개 가능
{
public void Payment()
{
Console.WriteLine("IC 홀더에 꽃는다");
}
}
public class CheckCard : Card, IPay // 라운지 이용 x
{
public void Payment()
{
Console.WriteLine("IC 홀더에 꽃는다");
}
}
public class Cash : IPay
{
public void Payment()
{
Console.WriteLine("현금을 준다");
}
}
public class SamsungPay : IPay
{
public void Payment()
{
Console.WriteLine("스마트폰을 댄다");
}
public class BodyScanner : IPay
{
public void Payment()
{
Console.WriteLine("팔을 댄다");
}
}
if ( GetComponent )
if ( GetComponent )
피해를 주는 class : IDamage
치유를 하는 class : IHealing
추상클래스와 인터페이스가 비슷하다고 생각했는데,
사용 방법은 유사하지만 사실상 아예 다르다는 것을 깨닳았고
직접적으로 사용을 하는 경우가 없더라도 협업을 위해 필히 이해하고
사용하는 방법을 습득해야 겠다고 느낌