맨체스터 사는 개발자

[Python] 상속과 오버로딩 본문

개발/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()

'개발 > Python' 카테고리의 다른 글

[Python] 클래스 메소드  (0) 2021.11.22
[Python] Slice 와 Step  (0) 2021.11.14
[Python] List 의 대표적인 기능들과 string  (0) 2021.11.12
[Python] if 문 관련해서  (0) 2021.11.12
[Python] raise  (0) 2021.11.11