#추상클래스
# - 부모의 역할을 수행하기위한 클래스
# - 자식클래스에서 구현했으면 하는 메소드의 틀을 만들어 놓은 클래스
# - 추상 메소드를 하나라도 포함하고 있으면 추상 클래스가 된다
# - 객체 생성 불가
# - 파이썬같은 경우 기본문법으로 제공하지 않는다
# - 모듈을 추가해주어야 한다 ex) abc
#import abc
from abc import *
class Animal(metaclass = ABCMeta):
def __init__(self,name) -> None:
self.name = name
#추상메소드 - 메소드의 틀,껍데기메소드
# - 반드시 자식클래스에서 오버라이드를 해주어야 한다
@abstractmethod
def bark(self):
pass
def disp(self):
print("이름 : {}".format(self.name))
class Cat(Animal):
def __init__(self, name) -> None:
super().__init__(name)
def bark(self):
print("야옹")
def eat(self):
print("생선")
class Dog(Animal):
def __init__(self, name) -> None:
super().__init__(name)
def bark(self):
print("멍멍")
def eat(self):
print("뼈다구")
a = Cat("이름")
a.bark()