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 |