- 강의 질문
- 데이터 사이언스
상속 관련 질문의 건
class jelly:
def __init__(self, color, taste):
self.color=color
self.taste=taste
def print_info(self):
print('부모 클래스입니다')
print('젤리')
class tj(jelly):
def print_info2(self):
print('자식 클래스입니다')
print('곰돌이아가')
print('taste:', self.taste)
print('color:', self.color)
로 자식 클래스의 프린트인포라는 매소드 이름이 다르게 하고, 위에 jelly 부모클래스 불러오게 되면
.super()와 동일하게 '부모클래스의 매소드등 속성 모두'와 '자식클래스 속성 중 부모클래스 속성과 겹치지 않는(이 경우 print_info2) 것'이 최종 출력되나요?
그런데 제가 임의로 바꾸어서 해보니..
# 자식 클래스로 객체 생성
# 자식 클래스의 print_info() 함수
# 자식 클래스에서 생성된 메소드로 부모 클래스의 메소드 무시
yj=tj('yellow','lemon')
yj.print_info2()
인 경우
자식 클래스입니다
곰돌이아가
taste: lemon
color: yellow
로 출력됩니다.
부모 클래스입니다
젤리
자식 클래스입니다
곰돌이아가
taste: lemon
color: yellow
가 아닌 이유가 무엇일까요?
*상속의 경우모든 매소드 속성이 상속되는 것이 아니라 생성자 처럼 제일 처음 매소드 속성만 자식 클래스에게 상속되는 걸까요
** 슈퍼 키워드 사용하지 않고 그냥 부모, 자식 클래스에서 매소드 이름들을 다르게 하면 되지 않나요..? 굳이 슈퍼 키워드를 사용하는 이유가 무엇일까요