Search

추상 클래스

상위 클래스에서 하위 클래스에 메서드 구현을 강요한다.
상위 클래스에서 생성된 메서드가 선언만 된 상태에서 하위 클래스에서 해당 메서드를 구체화해준다.
하지만, 진짜 추상 클래스의 유용한 기능은 상위 클래스에서 선언만 해 준 메서드를 서로 다른 하위 클래스에서 입맞에 맞게 변경할 수 있다는데 있다.
from abc import ABCMeta from abc import abstractmethod class AirPlane(metaclass=ABCMeta): @abstractmethod def flight(self): pass # 구현되지 않은 메소드 def forward(self): print('전진!') def backward(self): print('후진!') class Airliner(AirPlane): def __init__(self,c): self.color = c def flight(self): print('시속 400km/h 비행!') al = Airliner('red') al.flight() al.forward() al.backward()
Python
복사
# 계산기 추상 클래스 -> 새로운 계산기 클래스를 생성하기 # 덧셈 , 뺄셈, 곱셈, 나눗셈 기능이 있어야 함 from abc import ABCMeta from abc import abstractmethod class Calculator(metaclass=ABCMeta): @abstractmethod def add(self,n1,n2): pass def sub(self,n1,n2): pass def mul(self,n1,n2): pass def div(self,n1,n2): pass class Newcalculator(Calculator): def add(self,n1,n2): return n1 + n2 def sub(self,n1,n2): return n1 - n2 def mul(self,n1,n2): return n1 * n2 def div(self,n1,n2): return n1 / n2 value = Newcalculator() print(value.add(10,20)) print(value.sub(10,20)) print(value.mul(10,20)) print(value.div(10,20))
Python
복사