-
15. Class 상속공부합시다!/python 2023. 2. 13. 00:11728x90
지금까지 배운 Class를 다른 Class에서 사용할 수도 있습니다.
이를 Class 상속이라고 합니다.
부모 Class 슈퍼 클래스라고 하며 이를 물려받는 Class를 자식 Class 혹은 서브 Class 라고 합니다.
계속해서 재사용률을 높여 코드를 단순화하기 위해서 사용합니다.
''' 1. 클래스 상속, 다중상속 1.1. 클래스 상속 1.2. 클래스 상속 예제 코디 1.3. 클래스 다중 상속 ''' # 예제 1 # 상속 기본 # 부모 클래스 (슈퍼 클래스) 및 자식 클래스(서브 클래스) -> 모든 속성, 메소드 사용 가능 # 코드의 단순화 가능 # 라면 -> 속성(종류, 회사, 맛, 면, 면 종류, 이름) : 부모 # 속성을 물려받아 사용하면 코드의 단순화 class Car: ''' Parent Class''' def __init__(self, type, color): self.type = type self.color = color def show(self): return 'Car Class "show Method!"' class BmwCar(Car): ''' Sub Class''' def __init__(self, car_name, type, color): super().__init__(type, color) self.car_name = car_name def show_model(self) -> None: return "You Car Name : %s " % self.car_name class BenzCar(Car): ''' Sub Class''' def __init__(self, car_name, type, color): super().__init__(type, color) self.car_name = car_name def show_model(self) -> None: return "You Car Name : %s " %self.car_name def show(self): print(super().show()) return ' Car Info : %s %s %s ' %(self.car_name, self.type, self.color) # 일반사용 model1 = BmwCar('520d', 'sedan', 'red') print(model1.color) print(model1.type) print(model1.car_name) print(model1.show()) print(model1.show_model()) print(model1.__dict__) # Method Overriding(오버라이팅) -> 부모와 동일한 메소드가 존재할 경우 자식 메소드는 부모 메소드를 참조하지 않음. model2 = BenzCar('AMG', 'sub', 'black') print(model2.show()) # parent Method Call model3 = BenzCar('BMG', 'sedan', 'White') print(model3.show()) # 상속 관계가 깊은 경우 표현하는 method # Inheritance Info print(BmwCar.mro()) print(BenzCar.mro()) # 다중 상속 class X(): pass class Y(): pass class Z(): pass class A(X, Y): pass class B(Y, Z): pass class C(B, A, Z): pass print(C.mro()) print(B.mro())
728x90'공부합시다! > python' 카테고리의 다른 글
17. 예외처리 (0) 2023.02.16 16. Module과 Package (0) 2023.02.14 14. Class (0) 2023.02.10 13. DB: DB data 다루기 - 2 (0) 2023.02.08 13. DB: DB data 다루기 - 1 (0) 2023.02.07