개발/Python
[Python] 상속과 오버로딩
aaamy91
2021. 11. 30. 08:57
class Animal():
def eat(self):
print("먹는다")
def walk(self):
print("걷는다")
def greet(self):
print("인사한다")
class Human(Animal):
def wave(self):
print("손을 흔든다")
파이썬에서 상속하는 방법은 클래스 생성 후 괄호에 상속받을 클래스를 적는 것이다.
오버라이딩은 C++ 과 비슷하다 그냥 자식 클래스에 같은 이름의 함수를 선언하면 된다.
부모 클래스의 함수를 호출하고 싶다면? super() 를 사용하면 된다.
class Animal():
def eat(self):
print("먹는다")
def walk(self):
print("걷는다")
def greet(self):
print("인사한다")
class Human(Animal):
def wave(self):
print("손을 흔든다")
def greet(self):
self.wave()
super().greet()
파라미터 전달은 아래와 같이 하면 된다.
class Animal():
def __init__(self, name):
self.name = name
def eat(self):
print("먹는다")
def walk(self):
print("걷는다")
def greet(self):
print("인사한다")
class Human(Animal):
def __init__(self, name, hand):
super().__init__(name)
self.hand = hand
def wave(self):
print("{} 손을 흔든다".format(self.hand))
def greet(self):
self.wave()
class Dog(Animal):
def wag(self):
print("꼬리를 흔든다")
def greet(self):
self.wag()
person = Human("사람", "오른")
person.greet()