추상클래스는 인터페이스와 달리 구현을 가질 수 있다.
그러나 추상클래스는 인스턴스를 생성할 수는 없다.
또한 추상클래스는 추상 메소드를 가질 수 있어, 인터페이스의 역할도할 수 있다.
추상 클래스 구현
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 |