python
class - 추상클래스
bono.html
2022. 10. 11. 12:57
추상클래스
자식클래스에서 부모 메소드의 이름을 강요하기 위해서 사용한다
추상 클래스의 기본적인 형태
추상 클래스는 객체 생성이 불가능하다. 오직 부모 클래스의 역할만 한다.
추상메소드가 필요하다면 @abstractclassmethod를 붙여준다.
from abc import *
class AbstractClass(metaclass = ABCMeta): #추상 클래스가 된다
@abstractclassmethod
def myMethod(self): # 추상 메소드가 된다.
pass
def normalMethod(self):
print('추상 클래스는 일반 메소드를 가질 수도 있다')
# 추상클래스는 객체 생성이 불가능하다.
# parent = AbstractClass()
추상 클래스를 참고하는 자식클래스
class Child1(AbstractClass):
name = '난 Child1'
def myMethod(self):
print('child1에서 추상 메소드에 내용을 적용')
c1 = Child1()
print(c1.name)
c1.myMethod()
난 Child1
child1에서 추상 메소드에 내용을 적용
추상클래스를 활용한 다형성
class Child2(AbstractClass):
def myMethod(self):
print('child2에서 추상의 마법을 풀다')
print('자유')
def normalMethod(self):
print('추상 클래스의 일반 메소드는 오버라이딩이 선택적이다')
def good(self):
print('child2 고유 메소드')
c2 = Child2()
c2.myMethod()
c2.normalMethod()
c2.good()
print('-------')
imsi = c1
imsi.myMethod()
print()
imsi = c2
imsi.myMethod()
child2에서 추상의 마법을 풀다
자유
추상 클래스의 일반 메소드는 오버라이딩이 선택적이다
child2 고유 메소드
-------
child1에서 추상 메소드에 내용을 적용
child2에서 추상의 마법을 풀다
자유