-
[python] 파이썬 클래스 상속(inheritance)코딩 연습/코딩배우기 2020. 9. 10. 11:48반응형
■ 파이썬의 클래스 상속(inheritance)
# 부모클래스가 갖는 모든 메서드가 자식클래스에도 담긴다.
# 자식클래스에는 별도의 메서드를 추가할 수 있다.class Father: def run(self): print('so fast..!') class Son(Father): def jump(self): print('so high..!') def main(): s = Son() s.run() # so fast..! / 상속된 메서드 s.jump() # so high..! / 추가된 메서드 main()■ 메서드 오버라이딩
# 상속 관계에서 부모클래스의 메서드와 동일한 이름의 메서드를 자식클래스가 정의하는 것
# 이 경우, 부모메서드는 보이지 않는 상태가 된다.(호출 불가 상태)class Father: def run(self): print('so fast..!') class Son2(Father): def run(self): # Father 클래스의 run 메서드 가림(오버라이딩) print("so fast, son's style") def main(): s2 = Son2() s2.run() # so fast, son's style / Son2의 run 메서드 호출 main() # Son2의 객체에는 Father의 run과 Son2의 run이 모두 존재한다.# Father의 run이 가려졌을 뿐, 가려진 run도 호출할 수 있다.
class Father: def run(self): print('so fast..!') class Son3(Father): def run(self): print("so fast, son's style") def run2(self): super().run() # 부모클래스의 run() 호출 (가려진 run) def main(): s3 = Son3() s3.run() # so fast, son's style s3.run2() # so fast..! main()■ __init__ 메서드 오버라이딩
class Car: def __init__(self, carnumber, fuel): self.carnumber = carnumber self.fuel = fuel def drive(self): self.fuel -= 10 def add_fuel(self, f): self.fuel += f def show_info(self): print('car type :', self.carnumber) print('fuel :', self.fuel) class Truck(Car): def __init__(self, carnumber, fuel, c): # 부모클래스 변수 초기화값도 같이 전달받음 super().__init__(carnumber, fuel) # 부모 __init__ 호출 / 변수 초기화 self.cargo = c # 자식 변수 초기화 def add_cargo(self, c): self.cargo += c def show_info(self): super().show_info() #부모클래스 show_info 메서드 호출 print('cargo :', self.cargo) def main(): t = Truck('43럭5959', 0, 0) t.add_fuel(100) t.add_cargo(50) t.drive() t.show_info() main() [실행 결과] car type : 43럭5959 fuel : 90 cargo : 50[참고자료] 윤성우의 열혈파이썬 중급편
반응형'코딩 연습 > 코딩배우기' 카테고리의 다른 글
[python] 파이썬 __init__, __str__, __iter__, __next__ 등의 메서드 (0) 2020.09.12 [python] 파이썬 파일 쓰기, 읽기 - open(), read(), readline(), readlines() (0) 2020.09.11 [python] 파이썬 클래스와 객체의 본질, 그리고 독특한 특성 (0) 2020.09.09 [python] 파이썬 sort(), sorted() 알아보기 (0) 2020.09.08 [python] 파이썬 enumerate와 문자열 비교 (0) 2020.09.08
