본문 바로가기
이론/개발 지식

인터페이스와 추상클래스의 차이점

by 퇴근후개발 2024. 3. 21.
반응형

인터페이스와 추상클래스

인터페이스와 추상 클래스는 모두 객체지향 프로그래밍에서 다형성을 구현하는 데 사용되는 중요한 개념들입니다. 이 두 가지 개념은 유사점이 있어 자주 헷갈리는데요. 공통점은 아래와 같습니다.

  • 클래스나 객체의 공통된 특징을 추출하여 일반화를 통해 공통된 동작이나 특성을 정의합니다.
  • 인터페이스와 추상 클래스를 활용하면 다양한 클래스들을 하나의 유형으로 다룰 수 있어 코드의 유연성과 재사용성을 높일 수 있습니다.
  • 상속을 통해 새로운 클래스를 만들 수 있는 추상적인 틀을 제공합니다. 하위 클래스에서는 이러한 추상적인 틀을 구체화하여 자신만의 동작을 추가할 수 있습니다.
  • 두 개념 모두 구현을 강제하거나 제한할 수 있습니다. 추상 클래스는 추상 메서드를 구현했다면,하위 클래스에서 추상 메서드를 반드시 구현해야 합니다. 인터페이스는 모든 메서드가 추상 메서드이며, 클래스가 인터페이스를 구현할 때는 모든 메서드를 구현해야 합니다.

이러한 유사점들 때문에 어느 경우에 인터페이스를 사용해야 하고 어느 경우에 추상 클래스를 써야 하는지 혼동이 오는데요. 인터페이스와 추상 클래스의 차이점을 확인하여 정확한 사용법을 알아봅시다.

인터페이스와 추상클래스의 차이점

인터페이스는 다중 상속이 가능합니다. 따라서 다양한 동작을 가진 다양한 인터페이스를 클래스에 다중으로 추가할 수 있습니다. 또한, 인터페이스를 사용하면 클래스가 다른 클래스에 의존할 때 강한 결합이 아니라 약한 결합을 유지할 수 있습니다. 이는 코드의 유연성을 향상시킵니다.

추상 클래스는 C#에서는 하나의 클래스만 상속할 있습니다. 따라서 추상 클래스를 상속받는 경우에는 하위 클래스가 이미 다른 클래스를 상속하고 있는 경우에는 사용할 없습니다. 또한, 추상 클래스는 인터페이스와 다르게 추상 메서드뿐만 아니라 일반 메서드도 포함될 있습니다. 따라서 공통된 동작을 상속받는 클래스에게 제공할 있습니다.

따라서 인터페이스와 추상 클래스는 각각 다른 목적과 사용 사례를 가지고 있습니다. 인터페이스는 다중 상속을 통해 클래스 간의 상호작용을 정의하고, 추상 클래스는 공통된 동작을 가진 클래스들을 일반화하여 코드의 재사용성을 높입니다.

인터페이스와 추상클래스의 사례 구분

인터페이스 사용 사례

  • 다중 상속이 필요한 경우
  • 이미 다른 클래스를 상속받고 있는 경우
  • 추상 클래스를 사용할 만큼 많은 공통점은 없으나, 일부 기능을 강제할 필요가 있는 경우
  • 느슨한 결합을 유지하고 다형성을 활용하기 위한 경우

추상 클래스 사용 사례

  • 코드의 재사용을 높이기 위해 공통된 구현을 할 경우
  • 단일 상속의 제한이 문제가 되지 않는 경우
  • 상태를 가질 필요가 있는 경우

반응형