[c++] 추상 클래스와 인터페이스의 실제 응용 사례
목차
추상 클래스와 인터페이스란
추상 클래스는 하나 이상의 추상 메서드를 포함한 클래스로, 인스턴스를 생성할 수 없습니다. 반면에 인터페이스는 추상 메서드와 정적 상수만을 가지며, 다중 상속을 지원하며 클래스와는 달리 다중 구현이 가능합니다.
추상 클래스와 인터페이스의 차이
주요 차이점은 다음과 같습니다:
- 추상 클래스는 단일 상속만 가능하며, 일반 필드와 메서드를 가질 수 있습니다.
- 인터페이스는 다중 상속이 가능하며, 오직 상수와 추상 메서드만을 포함합니다.
- 추상 클래스는 추상 메서드 외에도 일반 메서드를 가질 수 있지만, 인터페이스는 추상 메서드로만 이루어져 있습니다.
추상 클래스와 인터페이스의 실제 응용 사례
추상 클래스의 응용 사례
추상 클래스는 유사한 동작을 수행하는 클래스들의 공통 부분을 추상 메서드로 정의하여 코드의 재사용성을 높일 수 있습니다. 예를 들어, 게임 프로그래밍에서 특정 타입의 캐릭터들이 공통으로 가지는 메서드를 추상 클래스로 정의할 수 있습니다.
class Character {
public:
virtual void move() = 0; // 추상 메서드
virtual void attack() = 0; // 추상 메서드
virtual void takeDamage(int amount) {
// 일반 메서드
// 모든 캐릭터들이 공통으로 가질 수 있는 기본 동작
}
};
인터페이스의 응용 사례
인터페이스는 관련이 없는 클래스들이 동일한 동작을 수행할 수 있도록 지원하는데 사용됩니다. 예를 들어, 자바에서는 Comparable
인터페이스가 있어 객체들을 비교할 수 있는 동작을 정의합니다.
public interface Comparable {
int compareTo(Object o);
}
이를 구현한 클래스들은 서로 비교 가능한 객체로써 동일한 동작을 보장받게 됩니다.
결론
추상 클래스와 인터페이스는 객체 지향 프로그래밍에서 유용하게 활용될 수 있는데, 이를 적절히 활용함으로써 코드의 구조를 명확히 정의하고 유연성을 높일 수 있습니다.