파이썬에서 클래스와 인터페이스의 관계를 설명하는 예시를 들어보겠습니다.
가정해 봅시다. 우리는 도형(Shape)을 다루는 프로그램을 만들려고 합니다. 이 프로그램에는 여러 종류의 도형이 있습니다. 각 도형은 면적을 계산할 수 있어야 합니다.
인터페이스(Interface):
우선, 인터페이스로 "면적을 계산할 수 있는 도형"을 정의합니다. 이 인터페이스에는 calculate_area()라는 메서드만 포함됩니다.
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def calculate_area(self):
pass
클래스(Class):
이제 도형 클래스를 구현할 차례입니다. 예를 들어, 사각형과 원을 나타내는 클래스를 만들 수 있습니다.
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def calculate_area(self):
return self.width * self.height
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def calculate_area(self):
return 3.14 * self.radius * self.radius
활용:
이제 우리는 도형 클래스를 사용하여 사각형과 원의 면적을 계산할 수 있습니다.
rectangle = Rectangle(5, 4)
print("Rectangle Area:", rectangle.calculate_area()) # 출력: 20
circle = Circle(3)
print("Circle Area:", circle.calculate_area()) # 출력: 28.26
이렇게 하면 클래스와 인터페이스가 상호작용하여 다양한 도형을 나타내고 해당 도형들의 공통된 특징인 면적을 계산할 수 있습니다. 인터페이스를 통해 클래스 간의 관계가 정의되고, 클래스는 이러한 인터페이스를 구현함으로써 특정 기능을 갖게 됩니다.