[python] 인터페이스와 클래스 상속의 비교
인터페이스와 클래스 상속은 소프트웨어 개발에서 중요한 역할을 합니다. 인터페이스는 클래스에서 구현해야 하는 메서드를 정의하지만, 실제 구현을 제공하지는 않습니다. 반면에 클래스 상속은 부모 클래스의 속성과 메서드를 자식 클래스가 상속받아 사용할 수 있도록 하는 방법입니다.
인터페이스
인터페이스는 클래스가 지켜야 하는 계약을 정의합니다. 파이썬에서는 명시적으로 인터페이스를 정의할 수는 없지만, 추상 베이스 클래스(ABC)를 사용하여 비슷한 효과를 낼 수 있습니다. 예를 들어, 다음은 MyInterface
라는 인터페이스를 정의하는 예시입니다.
from abc import ABC, abstractmethod
class MyInterface(ABC):
@abstractmethod
def method1(self):
pass
@abstractmethod
def method2(self):
pass
인터페이스는 해당 메서드를 구현하도록 보장하여, 코드의 일관성과 가독성을 높일 수 있습니다.
클래스 상속
클래스 상속은 부모 클래스의 속성과 메서드를 자식 클래스가 상속받아 사용할 수 있도록 합니다. 다음은 ParentClass
를 상속받는 ChildClass
의 예시입니다.
class ParentClass:
def method1(self):
print("Method 1")
def method2(self):
print("Method 2")
class ChildClass(ParentClass):
def method3(self):
print("Method 3")
ChildClass
는 ParentClass
의 메서드를 상속받을 뿐만 아니라 새로운 메서드를 추가하여 확장할 수 있습니다.
결론
인터페이스와 클래스 상속은 각각 계약을 정의하고 클래스를 확장하는 데 사용됩니다. 적합한 상황에 따라 적절히 사용하여 코드의 유지보수성과 재사용성을 향상시킬 수 있습니다.
이러한 개념들을 활용하여 파이썬에서 더욱 유지보수하기 좋고 유연한 코드를 작성할 수 있습니다.
참고문헌:
- 파이썬 공식 문서: https://docs.python.org/3/library/abc.html