아카이빙/C#

[C#] 추상클래스와 인터페이스

셩님 2018. 6. 18. 20:05

[C#] 추상클래스와 인터페이스

  • 추상클래스는 인터페이스와 달리 구현을 가질 수 있다.

  • 그러나 추상클래스는 인스턴스를 생성할 수는 없다.

  • 또한 추상클래스는 추상 메소드를 가질 수 있어, 인터페이스의 역할도할 수 있다.

추상 클래스 구현

abstract class AbstractBase
{
   protected void PrivateMethod()
  {
       Console.WriteLine("AbstractBase.PrivateMethod()");
  }
   public void PublicMethod()
  {
       Console.WriteLine("AbstractBase.PublicMethod()");
  }
   public abstract void AbstractMethod();
}
  • 상속받은 클래스에서만 접근가능한 PrivateMethod

  • 어디서든 접근가능한 PublicMethod

  • 추상 메소드인 AbstractMethod가 있다.

추상클래스를 상속받은 클래스 구현

class Derived : AbstractBase
{
   public override void AbstractMethod()
  {
       Console.WriteLine("Derived.AbstractMethod()");
       PrivateMethod();
  }
}
  • 추상메소드의 구현을 강제받는다.

테스트

class MainApp
{
   static void Main()
  {
       AbstractBase obj = new Derived();
       obj.AbstractMethod();
       obj.PublicMethod();
  }
}

결과

Derived.AbstractMethod()
AbstractBase.PrivateMethod()
AbstractBase.PublicMethod()


참조

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


'아카이빙 > C#' 카테고리의 다른 글

[C#] System.Array  (0) 2018.06.20
[C#] 프로퍼티  (0) 2018.06.20
[C#] 여러 인터페이스의 멤버를 명시적 구현  (0) 2018.06.18
[C#] 인터페이스 다중 상속  (0) 2018.06.18
[C#] 인터페이스를 상속하는 인터페이스  (0) 2018.06.18