C샵 인터페이스와 추상클래스

객체지향 설계의 핵심인 인터페이스(Interface)추상 클래스(Abstract Class)의 차이점과 활용법을 정리했다.

추상 클래스: 구조적 기반 정의

추상 클래스는 상속 관계를 명확히 하고 공통 로직을 공유할 때 사용한다.

클래스의 기본 골격을 정의하는 역할을 수행한다.

abstract class Machine {
    public void PowerOn() => Console.WriteLine("전원 활성화");
    public abstract void Work(); // 자식 클래스에서 구현 강제
}

인터페이스: 기능적 약속 정의

인터페이스는 클래스 계층과 무관하게 공통 기능을 정의한다.

다중 구현을 지원하여 설계 유연성을 제공한다.

interface IPrintable { void Print(); }

// 추상 클래스로 골격을 정의하고 인터페이스로 기능을 확장
class SmartPrinter : Machine, IPrintable {
    public override void Work() => Console.WriteLine("장치 가동 중");
    public void Print() => Console.WriteLine("출력 완료");
}

설계 전략

추상 클래스를 통해 구조적 기반을 확보하고 인터페이스를 통해 기능을 확장하는 방식은 효율적이다.

시스템 요구사항에 따라 두 도구를 적절히 조합하여 확장성 있는 소프트웨어를 설계해야 하는 것 같다.

Author avatar

웨이호프

WordPress creator and blogger.

View all posts