추상 클래스

장승현·2023년 5월 9일

Python

목록 보기
3/5
post-thumbnail

개요

추상 클래스는 강제할 메서드의 목록만을 가진 클래스이다. 여기서 강제할 메서드란 해당 클래스를 상속받은 클래스는 부모 클래스의 모든 메서드를 구현해야 하는 것을 의미한다.

구현

추상 클래스를 만들기 위해서는 abc 모듈이 필요하다. abc는 abstract base classd의 약자이다.

클래스의 metaclass는 ABCMeta로 지정하고, 메서드를 만들 때는 @abstractmethod를 붙여서 추상 메서드로 지정해야 한다. 추상 클래스는 인스턴스로 만들 수 없으므로 추상 메서드는 빈 메서드로 만들면 된다.

from abc import *

class Animal(metaclass = ABCMeta):
  @abstractmethod
  def bark(self):
    pass
    
  @abstractmethod
  def eat(self):
    pass
    
class Dog(Animal):
  def bark(self):
    print("짖다.")
    
  def eat(self):
    print("먹다.")
    
dog = Dog()
dog.bark() # 짖다.
dog.eat() # 먹다.

정리

추상 클래스는 상속에만 사용하며, 파생 클래스에서 반드시 구현해야 할 메서드를 정해줄 때 사용한다.

Conference

https://dojang.io/mod/page/view.php?id=2389

profile
늦더라도 끝이 강한 내가 되자

0개의 댓글