끄적끄적 코딩
article thumbnail
Published 2020. 9. 15. 04:07
[파이썬] 메소드 오버라이딩 Python
728x90

메소드 오버라이딩이
이미 선언되어있는 메소드를 상속받은 클래스에서 재정의해서 사용하는것을 의미합니다

위의 그림에서 메소드 오버라이딩은 부모로 부터 받은 메소드인
"짖기"를 새로 정의해서 우렁차게 짖기로 사용한 예입니다.

 

class People:
    def __init__(self, name, age, weight, run_speed):
        self.name = name
        self.age = age
        self.weight = weight
        self.run_speed = run_speed
        print("{0}이 입장하였습니다.".format(self.name))
        print("나이는 {0}, 몸무게는 {1} 입니다.".format(self.age, self.weight))
    
    def move(self):
        print("{0}이 {1}속도로 달리고있습니다.".format(self.name, self.run_speed))

class Car:
    def __init__(self, speed):
        self.speed = speed

    def drive(self):
        print("{0}이 {1}속도로 주행중입니다.".format(self.name, self.speed))

class detailPeople(People, Car):
    def __init__(self, name, age, weight, height):
        People.__init__(self, name, age, weight, "0km/h")
        Car.__init__(self, "0km/h")
        self.height = height
        self.flight_speed = "200km/h"
    
    def fly(self):
        print("{0}이 {1}속도로 비행 하고 있습니다.".format(self.name, self.flight_speed))

    def move(self):
        self.fly()

guest_3 = detailPeople("June", 20, 70, 170)
guest_3.move()


출력결과
June이 입장하였습니다.
나이는 20, 몸무게는 70 입니다.
June이 200km/h속도로 비행 하고 있습니다.

위의 예제에서 People 클래스에서 move함수를 선언했는데
People을 상속받은 detailPeople에서 move함수를 재정의해서 사용합니다.


'Python' 카테고리의 다른 글

[파이썬] 예외처리 (try, except, finally)  (0) 2020.09.15
[파이썬] pass, super  (0) 2020.09.15
[파이썬] 상속, 다중 상속  (0) 2020.09.15
[파이썬] 클래스  (0) 2020.09.15
[파이썬] with  (0) 2020.09.15

검색 태그