728x90
파이썬은 객체지향 언어로서 추상 클래스(Abstract Class)를 정의하고 사용할 수 있습니다. 추상 클래스는 상속을 통해 구체적인 기능을 구현하게 만드는 '설계도'의 역할을 합니다. 파이썬에서는 abc
모듈을 통해 이를 지원합니다.
● 추상 클래스란?
추상 클래스는 하나 이상의 추상 메서드(구현되지 않은 메서드)를 포함하는 클래스입니다. 직접 인스턴스를 생성할 수 없으며, 이를 상속받은 하위 클래스에서 반드시 구현해야 합니다.
파이썬에서는 ABC
클래스를 상속하고 @abstractmethod
데코레이터를 통해 추상 메서드를 지정합니다.
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def sound(self):
pass
위와 같은 추상 클래스는 직접 객체를 생성할 수 없으며, 상속한 하위 클래스에서 sound
메서드를 구현해야만 인스턴스를 만들 수 있습니다.
● 하위 클래스에서 구현하기
다음은 추상 클래스를 상속받은 예시입니다.
class Dog(Animal):
def sound(self):
return "멍멍"
이제 Dog
클래스는 sound()
메서드를 구현했으므로 객체를 생성할 수 있습니다. 반대로 구현하지 않으면 TypeError
가 발생합니다.
● 추상 클래스의 목적
- 일관된 인터페이스를 제공하여 하위 클래스의 구현을 강제
- 공통된 기능을 상속 구조로 묶고, 일부만 구체적으로 구현
- 다형성과 인터페이스 기반 설계를 실현
● 마무리
추상 클래스는 객체지향 설계에서 매우 중요한 개념입니다. 코드의 일관성과 안정성을 높이고, 인터페이스 기반 프로그래밍을 가능하게 합니다. 특히 다양한 하위 클래스가 동일한 메서드 구조를 따르도록 유도할 수 있기 때문에, 유지보수성과 확장성이 크게 향상됩니다.
728x90
'프로그래밍언어 > 파이썬[중급]' 카테고리의 다른 글
[파이썬][중급] Chapter06. 사용자 정의 예외 클래스 (0) | 2025.05.18 |
---|---|
[파이썬][중급] Chapter05. 매직 메서드(__str__, __eq__, __lt__ 등) (0) | 2025.05.18 |
[파이썬][중급] Chapter04. 다중 상속과 MRO 이해 (0) | 2025.05.18 |
[파이썬][중급] Chapter02. @property와 getter/setter 사용법 (0) | 2025.05.18 |
[파이썬][중급] Chapter01. 클래스 변수와 인스턴스 변수 차이 (0) | 2025.05.18 |