※ 강의를 듣고 제가 이해한 내용을 바탕으로 정리 한 것이라서 오류가 있을 수가 있습니다.
1. 상속
우선 이 캡처는 부모 클래스를 상속 받은 자식 클래스가 부모 클래스의 모든 속성 및 메소드를 사용 하는 것을 보여주는 결과 캡쳐이다.
저 캡처의 사용부분을 보면 자식 클래스에서 자식 클래스의 메소드에는 없는 차의 타입, 색상을 매개변수로 넣었는데도 부모 클래스로부터 상속 받았기에 사용 가능한것으로 확인이 된다.
사용부분에서 주석으로 부모 자식을 써준것은 메소드가 어디서 부터 온것인지 구분하기 위해 쓴 것이고
맨 아래 코드를 실행해서 딕셔너리 형태로 자식 클래스를 출력시켜서 맨 아래의 딕셔너리 형태로 출력 된
결과를 확인해보면 부모 클래스의 메소드를 자식 클래스가 사용하고 있다는 것을 완전히 확인 할수있다.
● 상속 방법
class Car: # 부모 클래스를 만들고
"""Parent Class"""
def __init__(self, tp, color):
self.type = tp
self.color = color
def show(self):
return 'Car Class "Show Method!"'
class BmwCar(Car): # 위에서 만든 부모 클래스를 새로운 클래스 매개변수에 넣으면 상속 받게 된다.
"""Sub Class"""
def __init__(self, car_name, tp, color):
super().__init__(tp, color)
self.car_name = car_name
def show_model(self):
return "Your Car Name : %s" % self.car_name
2. 다중 상속
위 캡처와 같이 여러 클래스가 얽히게 다중 상속도 가능하다.
상속된 함수를 보려면 캡처의 맨 아래 코드처럼 mro()함수를 이용해서 출력 가능하다.
그리고 캡처의 맨 아래 출력된 결과를 보면 상속된 클래스들을 오른쪽으로 나열해주는데
맨 오른쪽에 나오는 오브젝트 클래스는 개발자 자신이 만들지는 않았지만 모든 클래스의 공통 부모이기
때문에 기본적, 형식적으로 나오는 클래스이다.