추상클래스는 구현되지 않은 메서드를 가진 클래스를 말한다.
여기서 구현되지 않은 메서드가 추상메서드가 된다.
그렇다면 왜 이러한 구조를 만드는 것일까?
from abc import *
class Keyboard(metaclass=ABCMeta):
@abstractmethod
def btn1(self):
pass
@abstractmethod
def btn2(self):
pass
class Rogitec(Keyboard):
def btn1(self):
print("Red Light")
def btn2(self):
print("Green Light")
class SanSung(Keyboard):
def btn1(self):
print("Yellow Light")
def btn2(self):
print("White Light")
추상클래스의 구조는 위와 같다.
추상클래스 Keyboard 를 만들고 추상메서드 btn1, btn2를 만들었다.
키보드에서 버튼1, 버튼2를 누른다는 행위를 나타내는 메소드이다.
그랬을때 키보드 업체별로 결과가 다 다르기 때문에 자식클래스에서 메소드를 구현해준다.
추상메소드를 구현하지 않아도 에러가 발생하지는 않지만 객체를 생성하려고 하면 에러가 발생한다.
메서드와 필드를 통일시켜서 유지보수성을 높일 수 있음
새로운 클래스 생성시 추상화에 도움이 됨
결국 추상클래스의 용도는 일종의 규격이나 기준을 만드는 것이다.
어떠한 실체 클래스를 만들 때, 필드나 메서드는 이렇게 만드세요 하고 참고하는 용도인 것이다.