추상 클래스란?
- 내부에 구현되지 않은 메소드를 한가지 이상 가지고 있을 경우 추상클래스라 부른다.
- 구현이 되어있지 않기 때문에 자식 클래스에서 반드시 구현 해주어야 한다.
추상 클래스를 사용하는 이유
- 부모 클래스에서 꼭 만들었으면하는 메소드를 강제하기 위해서
추상클래스를 사용하기 위해 필요한 내용
- @abstractmethod
- from abc import *
- metaclass=ABCMeta
- 반드시 abc 모듈과 metaclass=ABCMeta, @abstractmethod를 써야한다.
- 추상 매소드를 구현한 클래스만 객체를 생성할 수 있다.
from abc import *
class test(metaclass=ABCMeta):
@abstractmethod
def math(self):
pass
@abstractmethod
def korea(self):
pass
def science(self):
print('과학점수 : 0')
class school(test):
def math(self):
print('점수: 10')
class mdschool(test):
def math(self):
print('점수: 20')
def korea(test):
print('점수: 20')
Mdschool = mdschool() // math,korea를 구현했기 때문에 객체 생성 가능
Mdschool.math()
Mdschool.korea()
Mdschool.science()